<html><!-- Created using the cpp_pretty_printer from the dlib C++ library.  See http://dlib.net for updates. --><head><title>dlib C++ Library - matrix_blas_bindings.h</title></head><body bgcolor='white'><pre>
<font color='#009900'>// Copyright (C) 2008  Davis E. King (davis@dlib.net)
</font><font color='#009900'>// License: Boost Software License   See LICENSE.txt for the full license.
</font><font color='#0000FF'>#ifndef</font> DLIB_MATRIx_BLAS_BINDINGS_
<font color='#0000FF'>#define</font> DLIB_MATRIx_BLAS_BINDINGS_

<font color='#0000FF'>#ifndef</font> DLIB_USE_BLAS
<font color='#0000FF'>#error</font> "<font color='#CC0000'>DLIB_USE_BLAS should be defined if you want to use the BLAS bindings</font>"
<font color='#0000FF'>#endif</font>

<font color='#0000FF'>#include</font> "<a style='text-decoration:none' href='matrix_assign.h.html'>matrix_assign.h</a>"
<font color='#0000FF'>#include</font> "<a style='text-decoration:none' href='matrix_conj_trans.h.html'>matrix_conj_trans.h</a>"
<font color='#0000FF'>#include</font> "<a style='text-decoration:none' href='cblas_constants.h.html'>cblas_constants.h</a>"

<font color='#009900'>//#include &lt;iostream&gt;
</font><font color='#009900'>//using namespace std;
</font>
<font color='#0000FF'>namespace</font> dlib
<b>{</b>


    <font color='#0000FF'>namespace</font> blas_bindings 
    <b>{</b>

<font color='#0000FF'>#ifdef</font> DLIB_TEST_BLAS_BINDINGS
        <font color='#0000FF'><u>int</u></font><font color='#5555FF'>&amp;</font> <b><a name='counter_gemm'></a>counter_gemm</b><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font>;
        <font color='#0000FF'><u>int</u></font><font color='#5555FF'>&amp;</font> <b><a name='counter_gemv'></a>counter_gemv</b><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font>;
        <font color='#0000FF'><u>int</u></font><font color='#5555FF'>&amp;</font> <b><a name='counter_ger'></a>counter_ger</b><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font>;
        <font color='#0000FF'><u>int</u></font><font color='#5555FF'>&amp;</font> <b><a name='counter_dot'></a>counter_dot</b><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font>;
        <font color='#0000FF'><u>int</u></font><font color='#5555FF'>&amp;</font> <b><a name='counter_axpy'></a>counter_axpy</b><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font>;
        <font color='#0000FF'><u>int</u></font><font color='#5555FF'>&amp;</font> <b><a name='counter_scal'></a>counter_scal</b><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font>;

        <font color='#0000FF'>#define</font> DLIB_TEST_BLAS_BINDING_GEMM <font color='#5555FF'>+</font><font color='#5555FF'>+</font>counter_gemm<font face='Lucida Console'>(</font><font face='Lucida Console'>)</font>;
        <font color='#0000FF'>#define</font> DLIB_TEST_BLAS_BINDING_GEMV <font color='#5555FF'>+</font><font color='#5555FF'>+</font>counter_gemv<font face='Lucida Console'>(</font><font face='Lucida Console'>)</font>;
        <font color='#0000FF'>#define</font> DLIB_TEST_BLAS_BINDING_GER <font color='#5555FF'>+</font><font color='#5555FF'>+</font>counter_ger<font face='Lucida Console'>(</font><font face='Lucida Console'>)</font>;
        <font color='#0000FF'>#define</font> DLIB_TEST_BLAS_BINDING_DOT <font color='#5555FF'>+</font><font color='#5555FF'>+</font>counter_dot<font face='Lucida Console'>(</font><font face='Lucida Console'>)</font>;
        <font color='#0000FF'>#define</font> DLIB_TEST_BLAS_BINDING_AXPY <font color='#5555FF'>+</font><font color='#5555FF'>+</font>counter_axpy<font face='Lucida Console'>(</font><font face='Lucida Console'>)</font>;
        <font color='#0000FF'>#define</font> DLIB_TEST_BLAS_BINDING_SCAL <font color='#5555FF'>+</font><font color='#5555FF'>+</font>counter_scal<font face='Lucida Console'>(</font><font face='Lucida Console'>)</font>;
<font color='#0000FF'>#else</font>
        <font color='#0000FF'>#define</font> DLIB_TEST_BLAS_BINDING_GEMM 
        <font color='#0000FF'>#define</font> DLIB_TEST_BLAS_BINDING_GEMV 
        <font color='#0000FF'>#define</font> DLIB_TEST_BLAS_BINDING_GER 
        <font color='#0000FF'>#define</font> DLIB_TEST_BLAS_BINDING_DOT 
        <font color='#0000FF'>#define</font> DLIB_TEST_BLAS_BINDING_AXPY
        <font color='#0000FF'>#define</font> DLIB_TEST_BLAS_BINDING_SCAL
<font color='#0000FF'>#endif</font>

<font color='#0000FF'>#ifndef</font> CBLAS_H
        <font color='#0000FF'>extern</font> "<font color='#CC0000'>C</font>"
        <b>{</b>
            <font color='#009900'>// Here we declare the prototypes for the CBLAS calls used by the BLAS bindings below
</font>
            <font color='#0000FF'><u>void</u></font> <b><a name='cblas_saxpy'></a>cblas_saxpy</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N, <font color='#0000FF'>const</font> <font color='#0000FF'><u>float</u></font> alpha, <font color='#0000FF'>const</font> <font color='#0000FF'><u>float</u></font> <font color='#5555FF'>*</font>X,
                            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX, <font color='#0000FF'><u>float</u></font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY<font face='Lucida Console'>)</font>;
            <font color='#0000FF'><u>void</u></font> <b><a name='cblas_daxpy'></a>cblas_daxpy</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N, <font color='#0000FF'>const</font> <font color='#0000FF'><u>double</u></font> alpha, <font color='#0000FF'>const</font> <font color='#0000FF'><u>double</u></font> <font color='#5555FF'>*</font>X,
                            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX, <font color='#0000FF'><u>double</u></font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY<font face='Lucida Console'>)</font>;
            <font color='#0000FF'><u>void</u></font> <b><a name='cblas_caxpy'></a>cblas_caxpy</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N, <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>alpha, <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>X,
                            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX, <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY<font face='Lucida Console'>)</font>;
            <font color='#0000FF'><u>void</u></font> <b><a name='cblas_zaxpy'></a>cblas_zaxpy</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N, <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>alpha, <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>X,
                            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX, <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY<font face='Lucida Console'>)</font>;

            <font color='#0000FF'><u>void</u></font> <b><a name='cblas_sscal'></a>cblas_sscal</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N, <font color='#0000FF'>const</font> <font color='#0000FF'><u>float</u></font> alpha, <font color='#0000FF'><u>float</u></font> <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX<font face='Lucida Console'>)</font>;
            <font color='#0000FF'><u>void</u></font> <b><a name='cblas_dscal'></a>cblas_dscal</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N, <font color='#0000FF'>const</font> <font color='#0000FF'><u>double</u></font> alpha, <font color='#0000FF'><u>double</u></font> <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX<font face='Lucida Console'>)</font>;
            <font color='#0000FF'><u>void</u></font> <b><a name='cblas_cscal'></a>cblas_cscal</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N, <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>alpha, <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX<font face='Lucida Console'>)</font>;
            <font color='#0000FF'><u>void</u></font> <b><a name='cblas_zscal'></a>cblas_zscal</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N, <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>alpha, <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX<font face='Lucida Console'>)</font>;

            <font color='#0000FF'><u>void</u></font> <b><a name='cblas_sgemm'></a>cblas_sgemm</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_ORDER Order, <font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_TRANSPOSE TransA,
                             <font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_TRANSPOSE TransB, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N,
                             <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> K, <font color='#0000FF'>const</font> <font color='#0000FF'><u>float</u></font> alpha, <font color='#0000FF'>const</font> <font color='#0000FF'><u>float</u></font> <font color='#5555FF'>*</font>A,
                             <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda, <font color='#0000FF'>const</font> <font color='#0000FF'><u>float</u></font> <font color='#5555FF'>*</font>B, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> ldb,
                             <font color='#0000FF'>const</font> <font color='#0000FF'><u>float</u></font> beta, <font color='#0000FF'><u>float</u></font> <font color='#5555FF'>*</font>C, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> ldc<font face='Lucida Console'>)</font>;
            <font color='#0000FF'><u>void</u></font> <b><a name='cblas_dgemm'></a>cblas_dgemm</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_ORDER Order, <font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_TRANSPOSE TransA,
                             <font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_TRANSPOSE TransB, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N,
                             <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> K, <font color='#0000FF'>const</font> <font color='#0000FF'><u>double</u></font> alpha, <font color='#0000FF'>const</font> <font color='#0000FF'><u>double</u></font> <font color='#5555FF'>*</font>A,
                             <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda, <font color='#0000FF'>const</font> <font color='#0000FF'><u>double</u></font> <font color='#5555FF'>*</font>B, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> ldb,
                             <font color='#0000FF'>const</font> <font color='#0000FF'><u>double</u></font> beta, <font color='#0000FF'><u>double</u></font> <font color='#5555FF'>*</font>C, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> ldc<font face='Lucida Console'>)</font>;
            <font color='#0000FF'><u>void</u></font> <b><a name='cblas_cgemm'></a>cblas_cgemm</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_ORDER Order, <font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_TRANSPOSE TransA,
                             <font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_TRANSPOSE TransB, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N,
                             <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> K, <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>alpha, <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>A,
                             <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda, <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>B, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> ldb,
                             <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>beta, <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>C, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> ldc<font face='Lucida Console'>)</font>;
            <font color='#0000FF'><u>void</u></font> <b><a name='cblas_zgemm'></a>cblas_zgemm</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_ORDER Order, <font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_TRANSPOSE TransA,
                             <font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_TRANSPOSE TransB, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N,
                             <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> K, <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>alpha, <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>A,
                             <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda, <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>B, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> ldb,
                             <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>beta, <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>C, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> ldc<font face='Lucida Console'>)</font>;
            <font color='#0000FF'><u>void</u></font> <b><a name='cblas_sgemv'></a>cblas_sgemv</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_ORDER order,
                             <font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_TRANSPOSE TransA, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N,
                             <font color='#0000FF'>const</font> <font color='#0000FF'><u>float</u></font> alpha, <font color='#0000FF'>const</font> <font color='#0000FF'><u>float</u></font> <font color='#5555FF'>*</font>A, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda,
                             <font color='#0000FF'>const</font> <font color='#0000FF'><u>float</u></font> <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX, <font color='#0000FF'>const</font> <font color='#0000FF'><u>float</u></font> beta,
                             <font color='#0000FF'><u>float</u></font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY<font face='Lucida Console'>)</font>;
            <font color='#0000FF'><u>void</u></font> <b><a name='cblas_dgemv'></a>cblas_dgemv</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_ORDER order,
                             <font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_TRANSPOSE TransA, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N,
                             <font color='#0000FF'>const</font> <font color='#0000FF'><u>double</u></font> alpha, <font color='#0000FF'>const</font> <font color='#0000FF'><u>double</u></font> <font color='#5555FF'>*</font>A, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda,
                             <font color='#0000FF'>const</font> <font color='#0000FF'><u>double</u></font> <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX, <font color='#0000FF'>const</font> <font color='#0000FF'><u>double</u></font> beta,
                             <font color='#0000FF'><u>double</u></font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY<font face='Lucida Console'>)</font>;
            <font color='#0000FF'><u>void</u></font> <b><a name='cblas_cgemv'></a>cblas_cgemv</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_ORDER order,
                             <font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_TRANSPOSE TransA, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N,
                             <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>alpha, <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>A, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda,
                             <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX, <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>beta,
                             <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY<font face='Lucida Console'>)</font>;
            <font color='#0000FF'><u>void</u></font> <b><a name='cblas_zgemv'></a>cblas_zgemv</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_ORDER order,
                             <font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_TRANSPOSE TransA, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N,
                             <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>alpha, <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>A, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda,
                             <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX, <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>beta,
                             <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY<font face='Lucida Console'>)</font>;
            <font color='#0000FF'><u>void</u></font> <b><a name='cblas_sger'></a>cblas_sger</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_ORDER order, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N,
                            <font color='#0000FF'>const</font> <font color='#0000FF'><u>float</u></font> alpha, <font color='#0000FF'>const</font> <font color='#0000FF'><u>float</u></font> <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX,
                            <font color='#0000FF'>const</font> <font color='#0000FF'><u>float</u></font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY, <font color='#0000FF'><u>float</u></font> <font color='#5555FF'>*</font>A, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda<font face='Lucida Console'>)</font>;
            <font color='#0000FF'><u>void</u></font> <b><a name='cblas_dger'></a>cblas_dger</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_ORDER order, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N,
                            <font color='#0000FF'>const</font> <font color='#0000FF'><u>double</u></font> alpha, <font color='#0000FF'>const</font> <font color='#0000FF'><u>double</u></font> <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX,
                            <font color='#0000FF'>const</font> <font color='#0000FF'><u>double</u></font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY, <font color='#0000FF'><u>double</u></font> <font color='#5555FF'>*</font>A, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda<font face='Lucida Console'>)</font>;
            <font color='#0000FF'><u>void</u></font> <b><a name='cblas_cgerc'></a>cblas_cgerc</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_ORDER order, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N,
                             <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>alpha, <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX,
                             <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY, <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>A, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda<font face='Lucida Console'>)</font>;
            <font color='#0000FF'><u>void</u></font> <b><a name='cblas_zgerc'></a>cblas_zgerc</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_ORDER order, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N,
                             <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>alpha, <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX,
                             <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY, <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>A, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda<font face='Lucida Console'>)</font>;
            <font color='#0000FF'><u>float</u></font>  <b><a name='cblas_sdot'></a>cblas_sdot</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N, <font color='#0000FF'>const</font> <font color='#0000FF'><u>float</u></font>  <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX,
                              <font color='#0000FF'>const</font> <font color='#0000FF'><u>float</u></font>  <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY<font face='Lucida Console'>)</font>;
            <font color='#0000FF'><u>double</u></font> <b><a name='cblas_ddot'></a>cblas_ddot</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N, <font color='#0000FF'>const</font> <font color='#0000FF'><u>double</u></font> <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX,
                              <font color='#0000FF'>const</font> <font color='#0000FF'><u>double</u></font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY<font face='Lucida Console'>)</font>;
            <font color='#0000FF'><u>void</u></font>   <b><a name='cblas_cdotu_sub'></a>cblas_cdotu_sub</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N, <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX,
                                   <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY, <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>dotu<font face='Lucida Console'>)</font>;
            <font color='#0000FF'><u>void</u></font>   <b><a name='cblas_zdotu_sub'></a>cblas_zdotu_sub</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N, <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX,
                                   <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY, <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>dotu<font face='Lucida Console'>)</font>;
            <font color='#0000FF'><u>void</u></font>   <b><a name='cblas_cdotc_sub'></a>cblas_cdotc_sub</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N, <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX,
                                   <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY, <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>dotc<font face='Lucida Console'>)</font>;
            <font color='#0000FF'><u>void</u></font>   <b><a name='cblas_zdotc_sub'></a>cblas_zdotc_sub</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N, <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX,
                                   <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY, <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>dotc<font face='Lucida Console'>)</font>;
            <font color='#0000FF'><u>void</u></font> <b><a name='cblas_cgeru'></a>cblas_cgeru</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_ORDER order, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N,
                             <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>alpha, <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX,
                             <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY, <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>A, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda<font face='Lucida Console'>)</font>;
            <font color='#0000FF'><u>void</u></font> <b><a name='cblas_zgeru'></a>cblas_zgeru</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_ORDER order, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N,
                             <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>alpha, <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX,
                             <font color='#0000FF'>const</font> <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY, <font color='#0000FF'><u>void</u></font> <font color='#5555FF'>*</font>A, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda<font face='Lucida Console'>)</font>;
        <b>}</b>
<font color='#0000FF'>#endif</font> <font color='#009900'>// if not CBLAS_H
</font>
    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>
        <font color='#0000FF'>inline</font> <font color='#0000FF'><u>void</u></font> <b><a name='cblas_axpy'></a>cblas_axpy</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N, <font color='#0000FF'>const</font> <font color='#0000FF'><u>float</u></font> alpha, <font color='#0000FF'>const</font> <font color='#0000FF'><u>float</u></font> <font color='#5555FF'>*</font>X,
                        <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX, <font color='#0000FF'><u>float</u></font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY<font face='Lucida Console'>)</font>
        <b>{</b>
            DLIB_TEST_BLAS_BINDING_AXPY;
            <font color='#BB00BB'>cblas_saxpy</font><font face='Lucida Console'>(</font>N, alpha, X, incX, Y, incY<font face='Lucida Console'>)</font>;
        <b>}</b>

        <font color='#0000FF'>inline</font> <font color='#0000FF'><u>void</u></font> <b><a name='cblas_axpy'></a>cblas_axpy</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N, <font color='#0000FF'>const</font> <font color='#0000FF'><u>double</u></font> alpha, <font color='#0000FF'>const</font> <font color='#0000FF'><u>double</u></font> <font color='#5555FF'>*</font>X,
                        <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX, <font color='#0000FF'><u>double</u></font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY<font face='Lucida Console'>)</font>
        <b>{</b>
            DLIB_TEST_BLAS_BINDING_AXPY;
            <font color='#BB00BB'>cblas_daxpy</font><font face='Lucida Console'>(</font>N, alpha, X, incX, Y, incY<font face='Lucida Console'>)</font>;
        <b>}</b>

        <font color='#0000FF'>inline</font> <font color='#0000FF'><u>void</u></font> <b><a name='cblas_axpy'></a>cblas_axpy</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N, <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>float</u></font><font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> alpha, <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>float</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>X,
                        <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX, std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>float</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY<font face='Lucida Console'>)</font>
        <b>{</b>
            DLIB_TEST_BLAS_BINDING_AXPY;
            <font color='#BB00BB'>cblas_caxpy</font><font face='Lucida Console'>(</font>N, <font color='#5555FF'>&amp;</font>alpha, X, incX, Y, incY<font face='Lucida Console'>)</font>;
        <b>}</b>

        <font color='#0000FF'>inline</font> <font color='#0000FF'><u>void</u></font> <b><a name='cblas_axpy'></a>cblas_axpy</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N, <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>double</u></font><font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> alpha, <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>double</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>X,
                        <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX, std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>double</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY<font face='Lucida Console'>)</font>
        <b>{</b>
            DLIB_TEST_BLAS_BINDING_AXPY;
            <font color='#BB00BB'>cblas_zaxpy</font><font face='Lucida Console'>(</font>N, <font color='#5555FF'>&amp;</font>alpha, X, incX, Y, incY<font face='Lucida Console'>)</font>;
        <b>}</b>

    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>
        <font color='#0000FF'>inline</font> <font color='#0000FF'><u>void</u></font> <b><a name='cblas_scal'></a>cblas_scal</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N, <font color='#0000FF'>const</font> <font color='#0000FF'><u>float</u></font> alpha, <font color='#0000FF'><u>float</u></font> <font color='#5555FF'>*</font>X<font face='Lucida Console'>)</font>
        <b>{</b>
            DLIB_TEST_BLAS_BINDING_SCAL;
            <font color='#BB00BB'>cblas_sscal</font><font face='Lucida Console'>(</font>N, alpha, X, <font color='#979000'>1</font><font face='Lucida Console'>)</font>;
        <b>}</b>

        <font color='#0000FF'>inline</font> <font color='#0000FF'><u>void</u></font> <b><a name='cblas_scal'></a>cblas_scal</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N, <font color='#0000FF'>const</font> <font color='#0000FF'><u>double</u></font> alpha, <font color='#0000FF'><u>double</u></font> <font color='#5555FF'>*</font>X<font face='Lucida Console'>)</font>
        <b>{</b>
            DLIB_TEST_BLAS_BINDING_SCAL;
            <font color='#BB00BB'>cblas_dscal</font><font face='Lucida Console'>(</font>N, alpha, X, <font color='#979000'>1</font><font face='Lucida Console'>)</font>;
        <b>}</b>

        <font color='#0000FF'>inline</font> <font color='#0000FF'><u>void</u></font> <b><a name='cblas_scal'></a>cblas_scal</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N, <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>float</u></font><font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> alpha, std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>float</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>X<font face='Lucida Console'>)</font>
        <b>{</b>
            DLIB_TEST_BLAS_BINDING_SCAL;
            <font color='#BB00BB'>cblas_cscal</font><font face='Lucida Console'>(</font>N, <font color='#5555FF'>&amp;</font>alpha, X, <font color='#979000'>1</font><font face='Lucida Console'>)</font>;
        <b>}</b>

        <font color='#0000FF'>inline</font> <font color='#0000FF'><u>void</u></font> <b><a name='cblas_scal'></a>cblas_scal</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N, <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>double</u></font><font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> alpha, std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>double</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>X<font face='Lucida Console'>)</font>
        <b>{</b>
            DLIB_TEST_BLAS_BINDING_SCAL;
            <font color='#BB00BB'>cblas_zscal</font><font face='Lucida Console'>(</font>N, <font color='#5555FF'>&amp;</font>alpha, X, <font color='#979000'>1</font><font face='Lucida Console'>)</font>;
        <b>}</b>

    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>
        <font color='#0000FF'>inline</font> <font color='#0000FF'><u>void</u></font> <b><a name='cblas_gemm'></a>cblas_gemm</b><font face='Lucida Console'>(</font> <font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_ORDER Order, <font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_TRANSPOSE TransA,
                                <font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_TRANSPOSE TransB, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N,
                                <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> K, <font color='#0000FF'>const</font> <font color='#0000FF'><u>float</u></font> alpha, <font color='#0000FF'>const</font> <font color='#0000FF'><u>float</u></font> <font color='#5555FF'>*</font>A,
                                <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda, <font color='#0000FF'>const</font> <font color='#0000FF'><u>float</u></font> <font color='#5555FF'>*</font>B, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> ldb,
                                <font color='#0000FF'>const</font> <font color='#0000FF'><u>float</u></font> beta, <font color='#0000FF'><u>float</u></font> <font color='#5555FF'>*</font>C, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> ldc<font face='Lucida Console'>)</font>
        <b>{</b>
            DLIB_TEST_BLAS_BINDING_GEMM;
            <font color='#BB00BB'>cblas_sgemm</font><font face='Lucida Console'>(</font> Order, TransA, TransB,  M,  N,
                          K,  alpha, A, lda, B,  ldb, beta, C,  ldc<font face='Lucida Console'>)</font>;
        <b>}</b>

        <font color='#0000FF'>inline</font> <font color='#0000FF'><u>void</u></font> <b><a name='cblas_gemm'></a>cblas_gemm</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_ORDER Order, <font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_TRANSPOSE TransA,
                         <font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_TRANSPOSE TransB, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N,
                         <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> K, <font color='#0000FF'>const</font> <font color='#0000FF'><u>double</u></font> alpha, <font color='#0000FF'>const</font> <font color='#0000FF'><u>double</u></font> <font color='#5555FF'>*</font>A,
                         <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda, <font color='#0000FF'>const</font> <font color='#0000FF'><u>double</u></font> <font color='#5555FF'>*</font>B, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> ldb,
                         <font color='#0000FF'>const</font> <font color='#0000FF'><u>double</u></font> beta, <font color='#0000FF'><u>double</u></font> <font color='#5555FF'>*</font>C, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> ldc<font face='Lucida Console'>)</font>
        <b>{</b>
            DLIB_TEST_BLAS_BINDING_GEMM;
            <font color='#BB00BB'>cblas_dgemm</font><font face='Lucida Console'>(</font> Order, TransA, TransB,  M,  N,
                          K,  alpha, A, lda, B,  ldb, beta, C,  ldc<font face='Lucida Console'>)</font>;
        <b>}</b>

        <font color='#0000FF'>inline</font> <font color='#0000FF'><u>void</u></font> <b><a name='cblas_gemm'></a>cblas_gemm</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_ORDER Order, <font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_TRANSPOSE TransA,
                         <font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_TRANSPOSE TransB, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N,
                         <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> K, <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>float</u></font><font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> alpha, <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>float</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>A,
                         <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda, <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>float</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>B, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> ldb,
                         <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>float</u></font><font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> beta, std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>float</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>C, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> ldc<font face='Lucida Console'>)</font>
        <b>{</b>
            DLIB_TEST_BLAS_BINDING_GEMM;
            <font color='#BB00BB'>cblas_cgemm</font><font face='Lucida Console'>(</font> Order, TransA, TransB,  M,  N,
                          K,  <font color='#5555FF'>&amp;</font>alpha, A, lda, B,  ldb, <font color='#5555FF'>&amp;</font>beta, C,  ldc<font face='Lucida Console'>)</font>;
        <b>}</b>

        <font color='#0000FF'>inline</font> <font color='#0000FF'><u>void</u></font> <b><a name='cblas_gemm'></a>cblas_gemm</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_ORDER Order, <font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_TRANSPOSE TransA,
                         <font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_TRANSPOSE TransB, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N,
                         <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> K, <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>double</u></font><font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> alpha, <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>double</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>A,
                         <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda, <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>double</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>B, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> ldb,
                         <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>double</u></font><font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> beta, std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>double</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>C, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> ldc<font face='Lucida Console'>)</font>
        <b>{</b>
            DLIB_TEST_BLAS_BINDING_GEMM;
            <font color='#BB00BB'>cblas_zgemm</font><font face='Lucida Console'>(</font> Order, TransA, TransB,  M,  N,
                          K,  <font color='#5555FF'>&amp;</font>alpha, A, lda, B,  ldb, <font color='#5555FF'>&amp;</font>beta, C,  ldc<font face='Lucida Console'>)</font>;
        <b>}</b>

    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>
        <font color='#0000FF'>inline</font> <font color='#0000FF'><u>void</u></font> <b><a name='cblas_gemv'></a>cblas_gemv</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_ORDER order,
                        <font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_TRANSPOSE TransA, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N,
                        <font color='#0000FF'>const</font> <font color='#0000FF'><u>float</u></font> alpha, <font color='#0000FF'>const</font> <font color='#0000FF'><u>float</u></font> <font color='#5555FF'>*</font>A, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda,
                        <font color='#0000FF'>const</font> <font color='#0000FF'><u>float</u></font> <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX, <font color='#0000FF'>const</font> <font color='#0000FF'><u>float</u></font> beta,
                        <font color='#0000FF'><u>float</u></font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY<font face='Lucida Console'>)</font>
        <b>{</b>
            DLIB_TEST_BLAS_BINDING_GEMV;
            <font color='#BB00BB'>cblas_sgemv</font><font face='Lucida Console'>(</font>order, TransA, M, N, alpha, A, lda, X, incX, beta, Y, incY<font face='Lucida Console'>)</font>;
        <b>}</b>

        <font color='#0000FF'>inline</font> <font color='#0000FF'><u>void</u></font> <b><a name='cblas_gemv'></a>cblas_gemv</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_ORDER order,
                        <font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_TRANSPOSE TransA, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N,
                        <font color='#0000FF'>const</font> <font color='#0000FF'><u>double</u></font> alpha, <font color='#0000FF'>const</font> <font color='#0000FF'><u>double</u></font> <font color='#5555FF'>*</font>A, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda,
                        <font color='#0000FF'>const</font> <font color='#0000FF'><u>double</u></font> <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX, <font color='#0000FF'>const</font> <font color='#0000FF'><u>double</u></font> beta,
                        <font color='#0000FF'><u>double</u></font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY<font face='Lucida Console'>)</font>
        <b>{</b>
            DLIB_TEST_BLAS_BINDING_GEMV;
            <font color='#BB00BB'>cblas_dgemv</font><font face='Lucida Console'>(</font>order, TransA, M, N, alpha, A, lda, X, incX, beta, Y, incY<font face='Lucida Console'>)</font>;
        <b>}</b>

        <font color='#0000FF'>inline</font> <font color='#0000FF'><u>void</u></font> <b><a name='cblas_gemv'></a>cblas_gemv</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_ORDER order,
                        <font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_TRANSPOSE TransA, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N,
                        <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>float</u></font><font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> alpha, <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>float</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>A, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda,
                        <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>float</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX, <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>float</u></font><font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> beta,
                        std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>float</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY<font face='Lucida Console'>)</font>
        <b>{</b>
            DLIB_TEST_BLAS_BINDING_GEMV;
            <font color='#BB00BB'>cblas_cgemv</font><font face='Lucida Console'>(</font>order, TransA, M, N, <font color='#5555FF'>&amp;</font>alpha, A, lda, X, incX, <font color='#5555FF'>&amp;</font>beta, Y, incY<font face='Lucida Console'>)</font>;
        <b>}</b>

        <font color='#0000FF'>inline</font> <font color='#0000FF'><u>void</u></font> <b><a name='cblas_gemv'></a>cblas_gemv</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_ORDER order,
                        <font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_TRANSPOSE TransA, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N,
                        <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>double</u></font><font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> alpha, <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>double</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>A, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda,
                        <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>double</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX, <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>double</u></font><font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> beta,
                        std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>double</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY<font face='Lucida Console'>)</font>
        <b>{</b>
            DLIB_TEST_BLAS_BINDING_GEMV;
            <font color='#BB00BB'>cblas_zgemv</font><font face='Lucida Console'>(</font>order, TransA, M, N, <font color='#5555FF'>&amp;</font>alpha, A, lda, X, incX, <font color='#5555FF'>&amp;</font>beta, Y, incY<font face='Lucida Console'>)</font>;
        <b>}</b>

    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>
        <font color='#0000FF'>inline</font> <font color='#0000FF'><u>void</u></font> <b><a name='cblas_ger'></a>cblas_ger</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_ORDER order, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N,
                        <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>float</u></font><font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> alpha, <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>float</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX,
                        <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>float</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY, std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>float</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>A, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda<font face='Lucida Console'>)</font>
        <b>{</b>
            DLIB_TEST_BLAS_BINDING_GER;
            <font color='#BB00BB'>cblas_cgeru</font> <font face='Lucida Console'>(</font>order,  M, N, <font color='#5555FF'>&amp;</font>alpha, X, incX, Y, incY, A, lda<font face='Lucida Console'>)</font>;
        <b>}</b>

        <font color='#0000FF'>inline</font> <font color='#0000FF'><u>void</u></font> <b><a name='cblas_ger'></a>cblas_ger</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_ORDER order, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N,
                        <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>double</u></font><font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> alpha, <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>double</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX,
                        <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>double</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY, std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>double</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>A, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda<font face='Lucida Console'>)</font>
        <b>{</b>
            DLIB_TEST_BLAS_BINDING_GER;
            <font color='#BB00BB'>cblas_zgeru</font> <font face='Lucida Console'>(</font>order,  M, N, <font color='#5555FF'>&amp;</font>alpha, X, incX, Y, incY, A, lda<font face='Lucida Console'>)</font>;
        <b>}</b>

        <font color='#0000FF'>inline</font> <font color='#0000FF'><u>void</u></font> <b><a name='cblas_ger'></a>cblas_ger</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_ORDER order, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N,
                        <font color='#0000FF'>const</font> <font color='#0000FF'><u>float</u></font> alpha, <font color='#0000FF'>const</font> <font color='#0000FF'><u>float</u></font> <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX,
                        <font color='#0000FF'>const</font> <font color='#0000FF'><u>float</u></font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY, <font color='#0000FF'><u>float</u></font> <font color='#5555FF'>*</font>A, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda<font face='Lucida Console'>)</font>
        <b>{</b>
            DLIB_TEST_BLAS_BINDING_GER;
            <font color='#BB00BB'>cblas_sger</font> <font face='Lucida Console'>(</font>order,  M, N, alpha, X, incX, Y, incY, A, lda<font face='Lucida Console'>)</font>;
        <b>}</b>

        <font color='#0000FF'>inline</font> <font color='#0000FF'><u>void</u></font> <b><a name='cblas_ger'></a>cblas_ger</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_ORDER order, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N,
                        <font color='#0000FF'>const</font> <font color='#0000FF'><u>double</u></font> alpha, <font color='#0000FF'>const</font> <font color='#0000FF'><u>double</u></font> <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX,
                        <font color='#0000FF'>const</font> <font color='#0000FF'><u>double</u></font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY, <font color='#0000FF'><u>double</u></font> <font color='#5555FF'>*</font>A, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda<font face='Lucida Console'>)</font>
        <b>{</b>
            DLIB_TEST_BLAS_BINDING_GER;
            <font color='#BB00BB'>cblas_dger</font> <font face='Lucida Console'>(</font>order,  M, N, alpha, X, incX, Y, incY, A, lda<font face='Lucida Console'>)</font>;
        <b>}</b>

    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>
        <font color='#0000FF'>inline</font> <font color='#0000FF'><u>void</u></font> <b><a name='cblas_gerc'></a>cblas_gerc</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_ORDER order, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N,
                        <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>float</u></font><font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> alpha, <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>float</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX,
                        <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>float</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY, std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>float</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>A, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda<font face='Lucida Console'>)</font>
        <b>{</b>
            DLIB_TEST_BLAS_BINDING_GER;
            <font color='#BB00BB'>cblas_cgerc</font> <font face='Lucida Console'>(</font>order,  M, N, <font color='#5555FF'>&amp;</font>alpha, X, incX, Y, incY, A, lda<font face='Lucida Console'>)</font>;
        <b>}</b>

        <font color='#0000FF'>inline</font> <font color='#0000FF'><u>void</u></font> <b><a name='cblas_gerc'></a>cblas_gerc</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'>enum</font> CBLAS_ORDER order, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N,
                        <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>double</u></font><font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> alpha, <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>double</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX,
                        <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>double</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY, std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>double</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>A, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda<font face='Lucida Console'>)</font>
        <b>{</b>
            DLIB_TEST_BLAS_BINDING_GER;
            <font color='#BB00BB'>cblas_zgerc</font> <font face='Lucida Console'>(</font>order,  M, N, <font color='#5555FF'>&amp;</font>alpha, X, incX, Y, incY, A, lda<font face='Lucida Console'>)</font>;
        <b>}</b>

    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>
        <font color='#0000FF'>inline</font> <font color='#0000FF'><u>float</u></font> <b><a name='cblas_dot'></a>cblas_dot</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N, <font color='#0000FF'>const</font> <font color='#0000FF'><u>float</u></font>  <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX,
                        <font color='#0000FF'>const</font> <font color='#0000FF'><u>float</u></font>  <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY<font face='Lucida Console'>)</font>
        <b>{</b>
            DLIB_TEST_BLAS_BINDING_DOT;
            <font color='#0000FF'>return</font> <font color='#BB00BB'>cblas_sdot</font><font face='Lucida Console'>(</font>N, X, incX, Y, incY<font face='Lucida Console'>)</font>;
        <b>}</b>

        <font color='#0000FF'>inline</font> <font color='#0000FF'><u>double</u></font> <b><a name='cblas_dot'></a>cblas_dot</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N, <font color='#0000FF'>const</font> <font color='#0000FF'><u>double</u></font> <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX,
                        <font color='#0000FF'>const</font> <font color='#0000FF'><u>double</u></font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY<font face='Lucida Console'>)</font>
        <b>{</b>
            DLIB_TEST_BLAS_BINDING_DOT;
            <font color='#0000FF'>return</font> <font color='#BB00BB'>cblas_ddot</font><font face='Lucida Console'>(</font>N, X, incX, Y, incY<font face='Lucida Console'>)</font>;
        <b>}</b>

        <font color='#0000FF'>inline</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>float</u></font><font color='#5555FF'>&gt;</font> <b><a name='cblas_dot'></a>cblas_dot</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N, <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>float</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX,
                            <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>float</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY<font face='Lucida Console'>)</font>
        <b>{</b>
            DLIB_TEST_BLAS_BINDING_DOT;
            std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>float</u></font><font color='#5555FF'>&gt;</font> result;
            <font color='#BB00BB'>cblas_cdotu_sub</font><font face='Lucida Console'>(</font>N, X, incX, Y, incY, <font color='#5555FF'>&amp;</font>result<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>return</font> result;
        <b>}</b>

        <font color='#0000FF'>inline</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>double</u></font><font color='#5555FF'>&gt;</font> <b><a name='cblas_dot'></a>cblas_dot</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N, <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>double</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX,
                            <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>double</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY<font face='Lucida Console'>)</font>
        <b>{</b>
            DLIB_TEST_BLAS_BINDING_DOT;
            std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>double</u></font><font color='#5555FF'>&gt;</font> result;
            <font color='#BB00BB'>cblas_zdotu_sub</font><font face='Lucida Console'>(</font>N, X, incX, Y, incY, <font color='#5555FF'>&amp;</font>result<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>return</font> result;
        <b>}</b>

    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>
        <font color='#0000FF'>inline</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>float</u></font><font color='#5555FF'>&gt;</font> <b><a name='cblas_dotc'></a>cblas_dotc</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N, <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>float</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX,
                            <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>float</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY<font face='Lucida Console'>)</font>
        <b>{</b>
            DLIB_TEST_BLAS_BINDING_DOT;
            std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>float</u></font><font color='#5555FF'>&gt;</font> result;
            <font color='#BB00BB'>cblas_cdotc_sub</font><font face='Lucida Console'>(</font>N, X, incX, Y, incY, <font color='#5555FF'>&amp;</font>result<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>return</font> result;
        <b>}</b>

        <font color='#0000FF'>inline</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>double</u></font><font color='#5555FF'>&gt;</font> <b><a name='cblas_dotc'></a>cblas_dotc</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N, <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>double</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>X, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX,
                            <font color='#0000FF'>const</font> std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>double</u></font><font color='#5555FF'>&gt;</font> <font color='#5555FF'>*</font>Y, <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY<font face='Lucida Console'>)</font>
        <b>{</b>
            DLIB_TEST_BLAS_BINDING_DOT;
            std::complex<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>double</u></font><font color='#5555FF'>&gt;</font> result;
            <font color='#BB00BB'>cblas_zdotc_sub</font><font face='Lucida Console'>(</font>N, X, incX, Y, incY, <font color='#5555FF'>&amp;</font>result<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>return</font> result;
        <b>}</b>

    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>    <font color='#009900'>// Helpers for determining the data pointer, LDA, and incX arguments to BLAS functions.
</font>
        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'><u>long</u></font> NR, <font color='#0000FF'><u>long</u></font> NC, <font color='#0000FF'>typename</font> MM<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_ld'></a>get_ld</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix<font color='#5555FF'>&lt;</font>T,NR,NC,MM,row_major_layout<font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> m.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font>; <b>}</b>

        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'><u>long</u></font> NR, <font color='#0000FF'><u>long</u></font> NC, <font color='#0000FF'>typename</font> MM<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_ld'></a>get_ld</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix<font color='#5555FF'>&lt;</font>T,NR,NC,MM,column_major_layout<font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> m.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font>; <b>}</b>


        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'><u>long</u></font> NR, <font color='#0000FF'><u>long</u></font> NC, <font color='#0000FF'>typename</font> MM<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_ld'></a>get_ld</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_subm<font color='#5555FF'>&lt;</font>matrix<font color='#5555FF'>&lt;</font>T,NR,NC,MM,row_major_layout<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> m.op.m.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font>; <b>}</b>

        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'><u>long</u></font> NR, <font color='#0000FF'><u>long</u></font> NC, <font color='#0000FF'>typename</font> MM<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_ld'></a>get_ld</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_subm<font color='#5555FF'>&lt;</font>matrix<font color='#5555FF'>&lt;</font>T,NR,NC,MM,column_major_layout<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> m.op.m.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font>; <b>}</b>

        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'><u>long</u></font> NR, <font color='#0000FF'><u>long</u></font> NC, <font color='#0000FF'>typename</font> MM<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_ld'></a>get_ld</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> assignable_sub_matrix<font color='#5555FF'>&lt;</font>T,NR,NC,MM,row_major_layout<font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> m.m.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font>; <b>}</b>

        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'><u>long</u></font> NR, <font color='#0000FF'><u>long</u></font> NC, <font color='#0000FF'>typename</font> MM<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_ld'></a>get_ld</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> assignable_sub_matrix<font color='#5555FF'>&lt;</font>T,NR,NC,MM,column_major_layout<font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> m.m.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font>; <b>}</b>

        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_ld'></a>get_ld</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> assignable_ptr_matrix<font color='#5555FF'>&lt;</font>T<font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> m.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font>; <b>}</b>

        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'>typename</font> MM<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_ld'></a>get_ld</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_array2d_to_mat<font color='#5555FF'>&lt;</font>array2d<font color='#5555FF'>&lt;</font>T,MM<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> m.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font>; <b>}</b>
        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'>typename</font> MM<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_ld'></a>get_ld</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_array_to_mat<font color='#5555FF'>&lt;</font>array<font color='#5555FF'>&lt;</font>T,MM<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> m.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font>; <b>}</b>
        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font> <font color='#0000FF'>typename</font> value_type, <font color='#0000FF'>typename</font> alloc <font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_ld'></a>get_ld</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_std_vect_to_mat<font color='#5555FF'>&lt;</font>std::vector<font color='#5555FF'>&lt;</font>value_type,alloc<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> m.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font>; <b>}</b>
        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font> <font color='#0000FF'>typename</font> value_type, <font color='#0000FF'>typename</font> alloc <font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_ld'></a>get_ld</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_std_vect_to_mat<font color='#5555FF'>&lt;</font>std_vector_c<font color='#5555FF'>&lt;</font>value_type,alloc<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> m.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font>; <b>}</b>
        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_ld'></a>get_ld</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_pointer_to_col_vect<font color='#5555FF'>&lt;</font>T<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> m.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font>; <b>}</b>
        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_ld'></a>get_ld</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_pointer_to_mat<font color='#5555FF'>&lt;</font>T<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> m.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font>; <b>}</b>

        <font color='#009900'>// --------
</font>
        <font color='#009900'>// get_inc() returns the offset from one element to another.  If an object has a
</font>        <font color='#009900'>// non-uniform offset between elements then returns 0 (e.g. a subm() view could
</font>        <font color='#009900'>// have a non-uniform offset between elements).
</font>
        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'>typename</font> MM<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_inc'></a>get_inc</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_array2d_to_mat<font color='#5555FF'>&lt;</font>array2d<font color='#5555FF'>&lt;</font>T,MM<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> <font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> <font color='#979000'>1</font>; <b>}</b>
        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'>typename</font> MM<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_inc'></a>get_inc</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_array_to_mat<font color='#5555FF'>&lt;</font>array<font color='#5555FF'>&lt;</font>T,MM<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> <font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> <font color='#979000'>1</font>; <b>}</b>
        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font> <font color='#0000FF'>typename</font> value_type, <font color='#0000FF'>typename</font> alloc <font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_inc'></a>get_inc</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_std_vect_to_mat<font color='#5555FF'>&lt;</font>std::vector<font color='#5555FF'>&lt;</font>value_type,alloc<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> <font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> <font color='#979000'>1</font>; <b>}</b>
        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font> <font color='#0000FF'>typename</font> value_type, <font color='#0000FF'>typename</font> alloc <font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_inc'></a>get_inc</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_std_vect_to_mat<font color='#5555FF'>&lt;</font>std_vector_c<font color='#5555FF'>&lt;</font>value_type,alloc<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> <font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> <font color='#979000'>1</font>; <b>}</b>
        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_inc'></a>get_inc</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_pointer_to_col_vect<font color='#5555FF'>&lt;</font>T<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> <font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> <font color='#979000'>1</font>; <b>}</b>
        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_inc'></a>get_inc</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_pointer_to_mat<font color='#5555FF'>&lt;</font>T<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> <font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> <font color='#979000'>1</font>; <b>}</b>

        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'><u>long</u></font> NR, <font color='#0000FF'><u>long</u></font> NC, <font color='#0000FF'>typename</font> MM, <font color='#0000FF'>typename</font> L<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_inc'></a>get_inc</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix<font color='#5555FF'>&lt;</font>T,NR,NC,MM,L<font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> <font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> <font color='#979000'>1</font>; <b>}</b>

        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'><u>long</u></font> NR, <font color='#0000FF'><u>long</u></font> NC, <font color='#0000FF'>typename</font> MM<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_inc'></a>get_inc</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_subm<font color='#5555FF'>&lt;</font>matrix<font color='#5555FF'>&lt;</font>T,NR,NC,MM,row_major_layout<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font> 
        <b>{</b> 
            <font color='#009900'>// if the sub-view doesn't cover all the columns then it can't have a uniform
</font>            <font color='#009900'>// layout.
</font>            <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>m.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font> <font color='#5555FF'>&lt;</font> m.op.m.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>
                <font color='#0000FF'>return</font> <font color='#979000'>0</font>;
            <font color='#0000FF'>else</font>
                <font color='#0000FF'>return</font> <font color='#979000'>1</font>;
        <b>}</b>

        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'><u>long</u></font> NR, <font color='#0000FF'><u>long</u></font> NC, <font color='#0000FF'>typename</font> MM<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_inc'></a>get_inc</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_subm<font color='#5555FF'>&lt;</font>matrix<font color='#5555FF'>&lt;</font>T,NR,NC,MM,column_major_layout<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font> 
        <b>{</b> 
            <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>m.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font> <font color='#5555FF'>&lt;</font> m.op.m.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>
                <font color='#0000FF'>return</font> <font color='#979000'>0</font>;
            <font color='#0000FF'>else</font>
                <font color='#0000FF'>return</font> <font color='#979000'>1</font>;
        <b>}</b>

        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'><u>long</u></font> NR, <font color='#0000FF'><u>long</u></font> NC, <font color='#0000FF'>typename</font> MM<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_inc'></a>get_inc</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> assignable_sub_matrix<font color='#5555FF'>&lt;</font>T,NR,NC,MM,row_major_layout<font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font> 
        <b>{</b> 
            <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>m.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font> <font color='#5555FF'>&lt;</font> m.m.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>
                <font color='#0000FF'>return</font> <font color='#979000'>0</font>;
            <font color='#0000FF'>else</font>
                <font color='#0000FF'>return</font> <font color='#979000'>1</font>;
        <b>}</b>
        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'><u>long</u></font> NR, <font color='#0000FF'><u>long</u></font> NC, <font color='#0000FF'>typename</font> MM<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_inc'></a>get_inc</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> assignable_sub_matrix<font color='#5555FF'>&lt;</font>T,NR,NC,MM,column_major_layout<font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font> 
        <b>{</b>
            <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>m.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font> <font color='#5555FF'>&lt;</font> m.m.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>
                <font color='#0000FF'>return</font> <font color='#979000'>0</font>;
            <font color='#0000FF'>else</font>
                <font color='#0000FF'>return</font> <font color='#979000'>1</font>;
        <b>}</b>

        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_inc'></a>get_inc</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> assignable_ptr_matrix<font color='#5555FF'>&lt;</font>T<font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> <font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> <font color='#979000'>1</font>; <b>}</b>

        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'><u>long</u></font> NR, <font color='#0000FF'><u>long</u></font> NC, <font color='#0000FF'>typename</font> MM<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_inc'></a>get_inc</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_colm<font color='#5555FF'>&lt;</font>matrix<font color='#5555FF'>&lt;</font>T,NR,NC,MM,row_major_layout<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#0000FF'>return</font> m.op.m.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font>;
        <b>}</b>

        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'><u>long</u></font> NR, <font color='#0000FF'><u>long</u></font> NC, <font color='#0000FF'>typename</font> MM<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_inc'></a>get_inc</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_rowm<font color='#5555FF'>&lt;</font>matrix<font color='#5555FF'>&lt;</font>T,NR,NC,MM,row_major_layout<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> <font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#0000FF'>return</font> <font color='#979000'>1</font>;
        <b>}</b>

        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'><u>long</u></font> NR, <font color='#0000FF'><u>long</u></font> NC, <font color='#0000FF'>typename</font> MM<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_inc'></a>get_inc</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_colm2<font color='#5555FF'>&lt;</font>matrix<font color='#5555FF'>&lt;</font>T,NR,NC,MM,row_major_layout<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#0000FF'>return</font> m.op.m.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font>;
        <b>}</b>

        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'><u>long</u></font> NR, <font color='#0000FF'><u>long</u></font> NC, <font color='#0000FF'>typename</font> MM<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_inc'></a>get_inc</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_rowm2<font color='#5555FF'>&lt;</font>matrix<font color='#5555FF'>&lt;</font>T,NR,NC,MM,row_major_layout<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> <font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#0000FF'>return</font> <font color='#979000'>1</font>;
        <b>}</b>



        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'><u>long</u></font> NR, <font color='#0000FF'><u>long</u></font> NC, <font color='#0000FF'>typename</font> MM<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_inc'></a>get_inc</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_colm<font color='#5555FF'>&lt;</font>matrix<font color='#5555FF'>&lt;</font>T,NR,NC,MM,column_major_layout<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> <font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#0000FF'>return</font> <font color='#979000'>1</font>;
        <b>}</b>

        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'><u>long</u></font> NR, <font color='#0000FF'><u>long</u></font> NC, <font color='#0000FF'>typename</font> MM<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_inc'></a>get_inc</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_rowm<font color='#5555FF'>&lt;</font>matrix<font color='#5555FF'>&lt;</font>T,NR,NC,MM,column_major_layout<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#0000FF'>return</font> m.op.m.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font>;
        <b>}</b>

        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'><u>long</u></font> NR, <font color='#0000FF'><u>long</u></font> NC, <font color='#0000FF'>typename</font> MM<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_inc'></a>get_inc</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_colm2<font color='#5555FF'>&lt;</font>matrix<font color='#5555FF'>&lt;</font>T,NR,NC,MM,column_major_layout<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> <font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#0000FF'>return</font> <font color='#979000'>1</font>;
        <b>}</b>

        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'><u>long</u></font> NR, <font color='#0000FF'><u>long</u></font> NC, <font color='#0000FF'>typename</font> MM<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_inc'></a>get_inc</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_rowm2<font color='#5555FF'>&lt;</font>matrix<font color='#5555FF'>&lt;</font>T,NR,NC,MM,column_major_layout<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#0000FF'>return</font> m.op.m.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font>;
        <b>}</b>



        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'><u>long</u></font> NR, <font color='#0000FF'><u>long</u></font> NC, <font color='#0000FF'>typename</font> MM<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_inc'></a>get_inc</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> assignable_row_matrix<font color='#5555FF'>&lt;</font>T,NR,NC,MM,row_major_layout<font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> <font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#0000FF'>return</font> <font color='#979000'>1</font>;
        <b>}</b>

        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'><u>long</u></font> NR, <font color='#0000FF'><u>long</u></font> NC, <font color='#0000FF'>typename</font> MM<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_inc'></a>get_inc</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> assignable_row_matrix<font color='#5555FF'>&lt;</font>T,NR,NC,MM,column_major_layout<font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#0000FF'>return</font> m.m.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font>;
        <b>}</b>

        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'><u>long</u></font> NR, <font color='#0000FF'><u>long</u></font> NC, <font color='#0000FF'>typename</font> MM<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_inc'></a>get_inc</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> assignable_col_matrix<font color='#5555FF'>&lt;</font>T,NR,NC,MM,row_major_layout<font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#0000FF'>return</font> m.m.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font>;
        <b>}</b>

        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'><u>long</u></font> NR, <font color='#0000FF'><u>long</u></font> NC, <font color='#0000FF'>typename</font> MM<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'><u>int</u></font> <b><a name='get_inc'></a>get_inc</b><font face='Lucida Console'>(</font><font color='#0000FF'>const</font> assignable_col_matrix<font color='#5555FF'>&lt;</font>T,NR,NC,MM,column_major_layout<font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> <font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#0000FF'>return</font> <font color='#979000'>1</font>;
        <b>}</b>

        <font color='#009900'>// --------
</font>
        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'><u>long</u></font> NR, <font color='#0000FF'><u>long</u></font> NC, <font color='#0000FF'>typename</font> MM, <font color='#0000FF'>typename</font> L<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> <b><a name='get_ptr'></a>get_ptr</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix<font color='#5555FF'>&lt;</font>T,NR,NC,MM,L<font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> <font color='#5555FF'>&amp;</font><font color='#BB00BB'>m</font><font face='Lucida Console'>(</font><font color='#979000'>0</font>,<font color='#979000'>0</font><font face='Lucida Console'>)</font>; <b>}</b>

        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'><u>long</u></font> NR, <font color='#0000FF'><u>long</u></font> NC, <font color='#0000FF'>typename</font> MM, <font color='#0000FF'>typename</font> L<font color='#5555FF'>&gt;</font>
        T<font color='#5555FF'>*</font> <b><a name='get_ptr'></a>get_ptr</b> <font face='Lucida Console'>(</font>matrix<font color='#5555FF'>&lt;</font>T,NR,NC,MM,L<font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> <font color='#5555FF'>&amp;</font><font color='#BB00BB'>m</font><font face='Lucida Console'>(</font><font color='#979000'>0</font>,<font color='#979000'>0</font><font face='Lucida Console'>)</font>; <b>}</b>

        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'><u>long</u></font> NR, <font color='#0000FF'><u>long</u></font> NC, <font color='#0000FF'>typename</font> MM, <font color='#0000FF'>typename</font> L<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> <b><a name='get_ptr'></a>get_ptr</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_subm<font color='#5555FF'>&lt;</font>matrix<font color='#5555FF'>&lt;</font>T,NR,NC,MM,L<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> <font color='#5555FF'>&amp;</font>m.op.<font color='#BB00BB'>m</font><font face='Lucida Console'>(</font>m.op.r_,m.op.c_<font face='Lucida Console'>)</font>; <b>}</b>

        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'><u>long</u></font> NR, <font color='#0000FF'><u>long</u></font> NC, <font color='#0000FF'>typename</font> MM, <font color='#0000FF'>typename</font> L<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> <b><a name='get_ptr'></a>get_ptr</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_colm<font color='#5555FF'>&lt;</font>matrix<font color='#5555FF'>&lt;</font>T,NR,NC,MM,L<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> <font color='#5555FF'>&amp;</font>m.op.<font color='#BB00BB'>m</font><font face='Lucida Console'>(</font><font color='#979000'>0</font>,m.op.col<font face='Lucida Console'>)</font>; <b>}</b>

        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'><u>long</u></font> NR, <font color='#0000FF'><u>long</u></font> NC, <font color='#0000FF'>typename</font> MM, <font color='#0000FF'>typename</font> L<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> <b><a name='get_ptr'></a>get_ptr</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_rowm<font color='#5555FF'>&lt;</font>matrix<font color='#5555FF'>&lt;</font>T,NR,NC,MM,L<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> <font color='#5555FF'>&amp;</font>m.op.<font color='#BB00BB'>m</font><font face='Lucida Console'>(</font>m.op.row,<font color='#979000'>0</font><font face='Lucida Console'>)</font>; <b>}</b>

        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'><u>long</u></font> NR, <font color='#0000FF'><u>long</u></font> NC, <font color='#0000FF'>typename</font> MM, <font color='#0000FF'>typename</font> L<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> <b><a name='get_ptr'></a>get_ptr</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_colm2<font color='#5555FF'>&lt;</font>matrix<font color='#5555FF'>&lt;</font>T,NR,NC,MM,L<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> <font color='#5555FF'>&amp;</font>m.op.<font color='#BB00BB'>m</font><font face='Lucida Console'>(</font><font color='#979000'>0</font>,m.op.col<font face='Lucida Console'>)</font>; <b>}</b>

        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'><u>long</u></font> NR, <font color='#0000FF'><u>long</u></font> NC, <font color='#0000FF'>typename</font> MM, <font color='#0000FF'>typename</font> L<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> <b><a name='get_ptr'></a>get_ptr</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_rowm2<font color='#5555FF'>&lt;</font>matrix<font color='#5555FF'>&lt;</font>T,NR,NC,MM,L<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> <font color='#5555FF'>&amp;</font>m.op.<font color='#BB00BB'>m</font><font face='Lucida Console'>(</font>m.op.row,<font color='#979000'>0</font><font face='Lucida Console'>)</font>; <b>}</b>


        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'><u>long</u></font> NR, <font color='#0000FF'><u>long</u></font> NC, <font color='#0000FF'>typename</font> MM, <font color='#0000FF'>typename</font> L<font color='#5555FF'>&gt;</font>
        T<font color='#5555FF'>*</font> <b><a name='get_ptr'></a>get_ptr</b> <font face='Lucida Console'>(</font>assignable_col_matrix<font color='#5555FF'>&lt;</font>T,NR,NC,MM,L<font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> <font color='#5555FF'>&amp;</font><font color='#BB00BB'>m</font><font face='Lucida Console'>(</font><font color='#979000'>0</font>,<font color='#979000'>0</font><font face='Lucida Console'>)</font>; <b>}</b>

        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'><u>long</u></font> NR, <font color='#0000FF'><u>long</u></font> NC, <font color='#0000FF'>typename</font> MM, <font color='#0000FF'>typename</font> L<font color='#5555FF'>&gt;</font>
        T<font color='#5555FF'>*</font> <b><a name='get_ptr'></a>get_ptr</b> <font face='Lucida Console'>(</font>assignable_row_matrix<font color='#5555FF'>&lt;</font>T,NR,NC,MM,L<font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> <font color='#5555FF'>&amp;</font><font color='#BB00BB'>m</font><font face='Lucida Console'>(</font><font color='#979000'>0</font>,<font color='#979000'>0</font><font face='Lucida Console'>)</font>; <b>}</b>

        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'><u>long</u></font> NR, <font color='#0000FF'><u>long</u></font> NC, <font color='#0000FF'>typename</font> MM, <font color='#0000FF'>typename</font> L<font color='#5555FF'>&gt;</font>
        T<font color='#5555FF'>*</font> <b><a name='get_ptr'></a>get_ptr</b> <font face='Lucida Console'>(</font>assignable_sub_matrix<font color='#5555FF'>&lt;</font>T,NR,NC,MM,L<font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> <font color='#5555FF'>&amp;</font><font color='#BB00BB'>m</font><font face='Lucida Console'>(</font><font color='#979000'>0</font>,<font color='#979000'>0</font><font face='Lucida Console'>)</font>; <b>}</b>

        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T<font color='#5555FF'>&gt;</font>
        T<font color='#5555FF'>*</font> <b><a name='get_ptr'></a>get_ptr</b> <font face='Lucida Console'>(</font>assignable_ptr_matrix<font color='#5555FF'>&lt;</font>T<font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> m.ptr; <b>}</b>

        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'>typename</font> MM<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> <b><a name='get_ptr'></a>get_ptr</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_array2d_to_mat<font color='#5555FF'>&lt;</font>array2d<font color='#5555FF'>&lt;</font>T,MM<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> <font color='#5555FF'>&amp;</font>m.op.array[<font color='#979000'>0</font>][<font color='#979000'>0</font>]; <b>}</b>
        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T, <font color='#0000FF'>typename</font> MM<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> <b><a name='get_ptr'></a>get_ptr</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_array_to_mat<font color='#5555FF'>&lt;</font>array<font color='#5555FF'>&lt;</font>T,MM<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> <font color='#5555FF'>&amp;</font>m.op.vect[<font color='#979000'>0</font>]; <b>}</b>
        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font> <font color='#0000FF'>typename</font> T, <font color='#0000FF'>typename</font> alloc <font color='#5555FF'>&gt;</font>
        <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> <b><a name='get_ptr'></a>get_ptr</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_std_vect_to_mat<font color='#5555FF'>&lt;</font>std::vector<font color='#5555FF'>&lt;</font>T,alloc<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> <font color='#5555FF'>&amp;</font>m.op.vect[<font color='#979000'>0</font>]; <b>}</b>
        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font> <font color='#0000FF'>typename</font> T, <font color='#0000FF'>typename</font> alloc <font color='#5555FF'>&gt;</font>
        <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> <b><a name='get_ptr'></a>get_ptr</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_std_vect_to_mat<font color='#5555FF'>&lt;</font>std_vector_c<font color='#5555FF'>&lt;</font>T,alloc<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> <font color='#5555FF'>&amp;</font>m.op.vect[<font color='#979000'>0</font>]; <b>}</b>
        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> <b><a name='get_ptr'></a>get_ptr</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_pointer_to_col_vect<font color='#5555FF'>&lt;</font>T<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> m.op.ptr; <b>}</b>
        <font color='#0000FF'>template</font> <font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> T<font color='#5555FF'>&gt;</font>
        <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> <b><a name='get_ptr'></a>get_ptr</b> <font face='Lucida Console'>(</font><font color='#0000FF'>const</font> matrix_op<font color='#5555FF'>&lt;</font>op_pointer_to_mat<font color='#5555FF'>&lt;</font>T<font color='#5555FF'>&gt;</font> <font color='#5555FF'>&gt;</font><font color='#5555FF'>&amp;</font> m<font face='Lucida Console'>)</font> <b>{</b> <font color='#0000FF'>return</font> m.op.ptr; <b>}</b>

    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>
        <font color='#009900'>// Here we declare some matrix objects for use in the DLIB_ADD_BLAS_BINDING macro.  These
</font>        <font color='#009900'>// extern declarations don't actually correspond to any real matrix objects.  They are
</font>        <font color='#009900'>// simply here so we can build matrix expressions with the DLIB_ADD_BLAS_BINDING marco.
</font>

        <font color='#009900'>// Note that the fact that these are double matrices isn't important, it is just a placeholder in this case.  
</font>        <font color='#0000FF'>extern</font> matrix<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>double</u></font><font color='#5555FF'>&gt;</font> m;     <font color='#009900'>// general matrix 
</font>        <font color='#0000FF'>extern</font> matrix<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>double</u></font>,<font color='#979000'>1</font>,<font color='#979000'>0</font><font color='#5555FF'>&gt;</font> rv;  <font color='#009900'>// general row vector
</font>        <font color='#0000FF'>extern</font> matrix<font color='#5555FF'>&lt;</font><font color='#0000FF'><u>double</u></font>,<font color='#979000'>0</font>,<font color='#979000'>1</font><font color='#5555FF'>&gt;</font> cv;  <font color='#009900'>// general column vector
</font>        <font color='#0000FF'>extern</font> <font color='#0000FF'>const</font> <font color='#0000FF'><u>double</u></font> s;

    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>    <font color='#009900'>//                       AXPY/SCAL overloads
</font>    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font>m<font face='Lucida Console'>)</font>
        <b>{</b>

            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.<font color='#BB00BB'>size</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>transpose <font color='#5555FF'>=</font><font color='#5555FF'>=</font> <font color='#979000'>false</font> <font color='#5555FF'>&amp;</font><font color='#5555FF'>&amp;</font> N <font color='#5555FF'>!</font><font color='#5555FF'>=</font> <font color='#979000'>0</font><font face='Lucida Console'>)</font>
            <b>{</b>
                <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>add_to<font face='Lucida Console'>)</font>
                <b>{</b>
                    <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font><font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src<font face='Lucida Console'>)</font> <font color='#5555FF'>&amp;</font><font color='#5555FF'>&amp;</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>
                        <font color='#BB00BB'>cblas_axpy</font><font face='Lucida Console'>(</font>N, alpha, <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src<font face='Lucida Console'>)</font>, <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src<font face='Lucida Console'>)</font>, <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>, <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
                    <font color='#0000FF'>else</font>
                        <font color='#BB00BB'>matrix_assign_default</font><font face='Lucida Console'>(</font>dest, src, alpha, add_to<font face='Lucida Console'>)</font>;
                <b>}</b>
                <font color='#0000FF'>else</font>
                <b>{</b>
                    <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font><font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src<font face='Lucida Console'>)</font> <font color='#5555FF'>=</font><font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>
                        <font color='#BB00BB'>cblas_scal</font><font face='Lucida Console'>(</font>N, alpha, <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
                    <font color='#0000FF'>else</font>
                        <font color='#BB00BB'>matrix_assign_default</font><font face='Lucida Console'>(</font>dest, src, alpha, add_to<font face='Lucida Console'>)</font>;
                <b>}</b>
            <b>}</b>
            <font color='#0000FF'>else</font>
            <b>{</b>
                <font color='#BB00BB'>matrix_assign_default</font><font face='Lucida Console'>(</font>dest, <font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>src<font face='Lucida Console'>)</font>, alpha, add_to<font face='Lucida Console'>)</font>;
            <b>}</b>

        <b>}</b> DLIB_END_BLAS_BINDING

        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font>rv<font face='Lucida Console'>)</font>
        <b>{</b>

            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.<font color='#BB00BB'>size</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>transpose <font color='#5555FF'>=</font><font color='#5555FF'>=</font> <font color='#979000'>false</font> <font color='#5555FF'>&amp;</font><font color='#5555FF'>&amp;</font> N <font color='#5555FF'>!</font><font color='#5555FF'>=</font> <font color='#979000'>0</font><font face='Lucida Console'>)</font>
            <b>{</b>
                <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>add_to<font face='Lucida Console'>)</font>
                <b>{</b>
                    <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font><font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src<font face='Lucida Console'>)</font> <font color='#5555FF'>&amp;</font><font color='#5555FF'>&amp;</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>
                        <font color='#BB00BB'>cblas_axpy</font><font face='Lucida Console'>(</font>N, alpha, <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src<font face='Lucida Console'>)</font>, <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src<font face='Lucida Console'>)</font>, <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>, <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
                    <font color='#0000FF'>else</font>
                        <font color='#BB00BB'>matrix_assign_default</font><font face='Lucida Console'>(</font>dest, src, alpha, add_to<font face='Lucida Console'>)</font>;
                <b>}</b>
                <font color='#0000FF'>else</font>
                <b>{</b>
                    <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font><font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src<font face='Lucida Console'>)</font> <font color='#5555FF'>=</font><font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>
                        <font color='#BB00BB'>cblas_scal</font><font face='Lucida Console'>(</font>N, alpha, <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
                    <font color='#0000FF'>else</font>
                        <font color='#BB00BB'>matrix_assign_default</font><font face='Lucida Console'>(</font>dest, src, alpha, add_to<font face='Lucida Console'>)</font>;
                <b>}</b>
            <b>}</b>
            <font color='#0000FF'>else</font>
            <b>{</b>
                <font color='#BB00BB'>matrix_assign_default</font><font face='Lucida Console'>(</font>dest, <font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>src<font face='Lucida Console'>)</font>, alpha, add_to<font face='Lucida Console'>)</font>;
            <b>}</b>

        <b>}</b> DLIB_END_BLAS_BINDING

        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font>cv<font face='Lucida Console'>)</font>
        <b>{</b>

            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.<font color='#BB00BB'>size</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>transpose <font color='#5555FF'>=</font><font color='#5555FF'>=</font> <font color='#979000'>false</font> <font color='#5555FF'>&amp;</font><font color='#5555FF'>&amp;</font> N <font color='#5555FF'>!</font><font color='#5555FF'>=</font> <font color='#979000'>0</font><font face='Lucida Console'>)</font>
            <b>{</b>
                <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>add_to<font face='Lucida Console'>)</font>
                <b>{</b>
                    <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font><font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src<font face='Lucida Console'>)</font> <font color='#5555FF'>&amp;</font><font color='#5555FF'>&amp;</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>
                        <font color='#BB00BB'>cblas_axpy</font><font face='Lucida Console'>(</font>N, alpha, <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src<font face='Lucida Console'>)</font>, <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src<font face='Lucida Console'>)</font>, <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>, <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
                    <font color='#0000FF'>else</font>
                        <font color='#BB00BB'>matrix_assign_default</font><font face='Lucida Console'>(</font>dest, src, alpha, add_to<font face='Lucida Console'>)</font>;
                <b>}</b>
                <font color='#0000FF'>else</font>
                <b>{</b>
                    <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font><font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src<font face='Lucida Console'>)</font> <font color='#5555FF'>=</font><font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>
                        <font color='#BB00BB'>cblas_scal</font><font face='Lucida Console'>(</font>N, alpha, <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
                    <font color='#0000FF'>else</font>
                        <font color='#BB00BB'>matrix_assign_default</font><font face='Lucida Console'>(</font>dest, src, alpha, add_to<font face='Lucida Console'>)</font>;
                <b>}</b>
            <b>}</b>
            <font color='#0000FF'>else</font>
            <b>{</b>
                <font color='#BB00BB'>matrix_assign_default</font><font face='Lucida Console'>(</font>dest, <font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>src<font face='Lucida Console'>)</font>, alpha, add_to<font face='Lucida Console'>)</font>;
            <b>}</b>

        <b>}</b> DLIB_END_BLAS_BINDING

    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>    <font color='#009900'>//                       GEMM overloads
</font>    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font>m<font color='#5555FF'>*</font>m<font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#009900'>//cout &lt;&lt; "BLAS GEMM: m*m" &lt;&lt; endl;
</font>            <font color='#0000FF'>const</font> <font color='#0000FF'><u>bool</u></font> is_row_major_order <font color='#5555FF'>=</font> is_same_type<font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> dest_exp::layout_type,row_major_layout<font color='#5555FF'>&gt;</font>::value;  
            <font color='#0000FF'>const</font> CBLAS_ORDER Order <font color='#5555FF'>=</font> is_row_major_order ? CblasRowMajor : CblasColMajor;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> K <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.lhs.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> A <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.lhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>src.lhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> B <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.rhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> ldb <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>src.rhs<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>const</font> T beta <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font>T<font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>add_to?<font color='#979000'>1</font>:<font color='#979000'>0</font><font face='Lucida Console'>)</font>;
            T<font color='#5555FF'>*</font> C <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> ldc <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>transpose <font color='#5555FF'>=</font><font color='#5555FF'>=</font> <font color='#979000'>false</font><font face='Lucida Console'>)</font>
                <font color='#BB00BB'>cblas_gemm</font><font face='Lucida Console'>(</font>Order, CblasNoTrans, CblasNoTrans, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>else</font>
                <font color='#BB00BB'>cblas_gemm</font><font face='Lucida Console'>(</font>Order, CblasTrans, CblasTrans, N, M, K, alpha, B, ldb, A, lda, beta, C, ldc<font face='Lucida Console'>)</font>;

        <b>}</b> DLIB_END_BLAS_BINDING

        <font color='#009900'>// --------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>m<font face='Lucida Console'>)</font><font color='#5555FF'>*</font>m<font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#009900'>//cout &lt;&lt; "BLAS GEMM: trans(m)*m" &lt;&lt; endl;
</font>            <font color='#0000FF'>const</font> <font color='#0000FF'><u>bool</u></font> is_row_major_order <font color='#5555FF'>=</font> is_same_type<font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> dest_exp::layout_type,row_major_layout<font color='#5555FF'>&gt;</font>::value;  
            <font color='#0000FF'>const</font> CBLAS_ORDER Order <font color='#5555FF'>=</font> is_row_major_order ? CblasRowMajor : CblasColMajor;
            <font color='#0000FF'>const</font> CBLAS_TRANSPOSE TransA <font color='#5555FF'>=</font> CblasTrans;
            <font color='#0000FF'>const</font> CBLAS_TRANSPOSE TransB <font color='#5555FF'>=</font> CblasNoTrans;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> K <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.lhs.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> A <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> B <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.rhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> ldb <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>src.rhs<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>const</font> T beta <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font>T<font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>add_to?<font color='#979000'>1</font>:<font color='#979000'>0</font><font face='Lucida Console'>)</font>;
            T<font color='#5555FF'>*</font> C <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> ldc <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>transpose <font color='#5555FF'>=</font><font color='#5555FF'>=</font> <font color='#979000'>false</font><font face='Lucida Console'>)</font>
                <font color='#BB00BB'>cblas_gemm</font><font face='Lucida Console'>(</font>Order, TransA, TransB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>else</font>
                <font color='#BB00BB'>cblas_gemm</font><font face='Lucida Console'>(</font>Order, TransA, TransB, N, M, K, alpha, B, ldb, A, lda, beta, C, ldc<font face='Lucida Console'>)</font>;

        <b>}</b> DLIB_END_BLAS_BINDING

        <font color='#009900'>// --------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font>m<font color='#5555FF'>*</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>m<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#009900'>//cout &lt;&lt; "BLAS GEMM: m*trans(m)" &lt;&lt; endl;
</font>            <font color='#0000FF'>const</font> <font color='#0000FF'><u>bool</u></font> is_row_major_order <font color='#5555FF'>=</font> is_same_type<font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> dest_exp::layout_type,row_major_layout<font color='#5555FF'>&gt;</font>::value;  
            <font color='#0000FF'>const</font> CBLAS_ORDER Order <font color='#5555FF'>=</font> is_row_major_order ? CblasRowMajor : CblasColMajor;
            <font color='#0000FF'>const</font> CBLAS_TRANSPOSE TransA <font color='#5555FF'>=</font> CblasNoTrans;
            <font color='#0000FF'>const</font> CBLAS_TRANSPOSE TransB <font color='#5555FF'>=</font> CblasTrans;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> K <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.lhs.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> A <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.lhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>src.lhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> B <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> ldb <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>const</font> T beta <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font>T<font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>add_to?<font color='#979000'>1</font>:<font color='#979000'>0</font><font face='Lucida Console'>)</font>;
            T<font color='#5555FF'>*</font> C <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> ldc <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>transpose <font color='#5555FF'>=</font><font color='#5555FF'>=</font> <font color='#979000'>false</font><font face='Lucida Console'>)</font>
                <font color='#BB00BB'>cblas_gemm</font><font face='Lucida Console'>(</font>Order, TransA, TransB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>else</font>
                <font color='#BB00BB'>cblas_gemm</font><font face='Lucida Console'>(</font>Order, TransA, TransB, N, M, K, alpha, B, ldb, A, lda, beta, C, ldc<font face='Lucida Console'>)</font>;

        <b>}</b> DLIB_END_BLAS_BINDING

        <font color='#009900'>// --------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>m<font face='Lucida Console'>)</font><font color='#5555FF'>*</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>m<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#009900'>//cout &lt;&lt; "BLAS GEMM: trans(m)*trans(m)" &lt;&lt; endl;
</font>            <font color='#0000FF'>const</font> <font color='#0000FF'><u>bool</u></font> is_row_major_order <font color='#5555FF'>=</font> is_same_type<font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> dest_exp::layout_type,row_major_layout<font color='#5555FF'>&gt;</font>::value;  
            <font color='#0000FF'>const</font> CBLAS_ORDER Order <font color='#5555FF'>=</font> is_row_major_order ? CblasRowMajor : CblasColMajor;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> K <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.lhs.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> A <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> B <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> ldb <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>const</font> T beta <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font>T<font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>add_to?<font color='#979000'>1</font>:<font color='#979000'>0</font><font face='Lucida Console'>)</font>;
            T<font color='#5555FF'>*</font> C <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> ldc <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>transpose <font color='#5555FF'>=</font><font color='#5555FF'>=</font> <font color='#979000'>false</font><font face='Lucida Console'>)</font>
                <font color='#BB00BB'>cblas_gemm</font><font face='Lucida Console'>(</font>Order, CblasTrans, CblasTrans, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>else</font>
                <font color='#BB00BB'>cblas_gemm</font><font face='Lucida Console'>(</font>Order, CblasNoTrans, CblasNoTrans, N, M, K, alpha, B, ldb, A, lda, beta, C, ldc<font face='Lucida Console'>)</font>;
        <b>}</b> DLIB_END_BLAS_BINDING

        <font color='#009900'>// --------------------------------------
</font>        <font color='#009900'>// --------------------------------------
</font>        <font color='#009900'>// --------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font><font color='#BB00BB'>conj</font><font face='Lucida Console'>(</font>m<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font><font color='#5555FF'>*</font>m<font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#009900'>//cout &lt;&lt; "BLAS GEMM: trans(conj(m))*m" &lt;&lt; endl;
</font>            <font color='#0000FF'>const</font> <font color='#0000FF'><u>bool</u></font> is_row_major_order <font color='#5555FF'>=</font> is_same_type<font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> dest_exp::layout_type,row_major_layout<font color='#5555FF'>&gt;</font>::value;  
            <font color='#0000FF'>const</font> CBLAS_ORDER Order <font color='#5555FF'>=</font> is_row_major_order ? CblasRowMajor : CblasColMajor;
            <font color='#0000FF'>const</font> CBLAS_TRANSPOSE TransA <font color='#5555FF'>=</font> CblasConjTrans;
            <font color='#0000FF'>const</font> CBLAS_TRANSPOSE TransB <font color='#5555FF'>=</font> CblasNoTrans;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> K <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.lhs.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> A <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> B <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.rhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> ldb <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>src.rhs<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>const</font> T beta <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font>T<font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>add_to?<font color='#979000'>1</font>:<font color='#979000'>0</font><font face='Lucida Console'>)</font>;
            T<font color='#5555FF'>*</font> C <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> ldc <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>transpose <font color='#5555FF'>=</font><font color='#5555FF'>=</font> <font color='#979000'>false</font><font face='Lucida Console'>)</font>
                <font color='#BB00BB'>cblas_gemm</font><font face='Lucida Console'>(</font>Order, TransA, TransB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>else</font>
                <font color='#BB00BB'>matrix_assign_default</font><font face='Lucida Console'>(</font>dest, <font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>src<font face='Lucida Console'>)</font>, alpha, add_to<font face='Lucida Console'>)</font>;

        <b>}</b> DLIB_END_BLAS_BINDING

        <font color='#009900'>// --------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font><font color='#BB00BB'>conj</font><font face='Lucida Console'>(</font>m<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font><font color='#5555FF'>*</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>m<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#009900'>//cout &lt;&lt; "BLAS GEMM: trans(conj(m))*trans(m)" &lt;&lt; endl;
</font>            <font color='#0000FF'>const</font> <font color='#0000FF'><u>bool</u></font> is_row_major_order <font color='#5555FF'>=</font> is_same_type<font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> dest_exp::layout_type,row_major_layout<font color='#5555FF'>&gt;</font>::value;  
            <font color='#0000FF'>const</font> CBLAS_ORDER Order <font color='#5555FF'>=</font> is_row_major_order ? CblasRowMajor : CblasColMajor;
            <font color='#0000FF'>const</font> CBLAS_TRANSPOSE TransA <font color='#5555FF'>=</font> CblasConjTrans;
            <font color='#0000FF'>const</font> CBLAS_TRANSPOSE TransB <font color='#5555FF'>=</font> CblasTrans;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> K <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.lhs.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> A <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> B <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> ldb <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>const</font> T beta <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font>T<font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>add_to?<font color='#979000'>1</font>:<font color='#979000'>0</font><font face='Lucida Console'>)</font>;
            T<font color='#5555FF'>*</font> C <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> ldc <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>transpose <font color='#5555FF'>=</font><font color='#5555FF'>=</font> <font color='#979000'>false</font><font face='Lucida Console'>)</font>
                <font color='#BB00BB'>cblas_gemm</font><font face='Lucida Console'>(</font>Order, TransA, TransB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>else</font>
                <font color='#BB00BB'>matrix_assign_default</font><font face='Lucida Console'>(</font>dest, <font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>src<font face='Lucida Console'>)</font>, alpha, add_to<font face='Lucida Console'>)</font>;

        <b>}</b> DLIB_END_BLAS_BINDING

        <font color='#009900'>// --------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font>m<font color='#5555FF'>*</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font><font color='#BB00BB'>conj</font><font face='Lucida Console'>(</font>m<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#009900'>//cout &lt;&lt; "BLAS GEMM: m*trans(conj(m))" &lt;&lt; endl;
</font>            <font color='#0000FF'>const</font> <font color='#0000FF'><u>bool</u></font> is_row_major_order <font color='#5555FF'>=</font> is_same_type<font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> dest_exp::layout_type,row_major_layout<font color='#5555FF'>&gt;</font>::value;  
            <font color='#0000FF'>const</font> CBLAS_ORDER Order <font color='#5555FF'>=</font> is_row_major_order ? CblasRowMajor : CblasColMajor;
            <font color='#0000FF'>const</font> CBLAS_TRANSPOSE TransA <font color='#5555FF'>=</font> CblasNoTrans;
            <font color='#0000FF'>const</font> CBLAS_TRANSPOSE TransB <font color='#5555FF'>=</font> CblasConjTrans;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> K <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.lhs.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> A <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.lhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>src.lhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> B <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> ldb <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>const</font> T beta <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font>T<font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>add_to?<font color='#979000'>1</font>:<font color='#979000'>0</font><font face='Lucida Console'>)</font>;
            T<font color='#5555FF'>*</font> C <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> ldc <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>transpose <font color='#5555FF'>=</font><font color='#5555FF'>=</font> <font color='#979000'>false</font><font face='Lucida Console'>)</font>
                <font color='#BB00BB'>cblas_gemm</font><font face='Lucida Console'>(</font>Order, TransA, TransB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>else</font>
                <font color='#BB00BB'>matrix_assign_default</font><font face='Lucida Console'>(</font>dest, <font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>src<font face='Lucida Console'>)</font>, alpha, add_to<font face='Lucida Console'>)</font>;
        <b>}</b> DLIB_END_BLAS_BINDING

        <font color='#009900'>// --------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>m<font face='Lucida Console'>)</font><font color='#5555FF'>*</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font><font color='#BB00BB'>conj</font><font face='Lucida Console'>(</font>m<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>bool</u></font> is_row_major_order <font color='#5555FF'>=</font> is_same_type<font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> dest_exp::layout_type,row_major_layout<font color='#5555FF'>&gt;</font>::value;  
            <font color='#0000FF'>const</font> CBLAS_ORDER Order <font color='#5555FF'>=</font> is_row_major_order ? CblasRowMajor : CblasColMajor;
            <font color='#0000FF'>const</font> CBLAS_TRANSPOSE TransA <font color='#5555FF'>=</font> CblasTrans;
            <font color='#0000FF'>const</font> CBLAS_TRANSPOSE TransB <font color='#5555FF'>=</font> CblasConjTrans;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> K <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.lhs.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> A <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> B <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> ldb <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>const</font> T beta <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font>T<font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>add_to?<font color='#979000'>1</font>:<font color='#979000'>0</font><font face='Lucida Console'>)</font>;
            T<font color='#5555FF'>*</font> C <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> ldc <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>transpose <font color='#5555FF'>=</font><font color='#5555FF'>=</font> <font color='#979000'>false</font><font face='Lucida Console'>)</font>
                <font color='#BB00BB'>cblas_gemm</font><font face='Lucida Console'>(</font>Order, TransA, TransB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>else</font>
                <font color='#BB00BB'>matrix_assign_default</font><font face='Lucida Console'>(</font>dest, <font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>src<font face='Lucida Console'>)</font>, alpha, add_to<font face='Lucida Console'>)</font>;
        <b>}</b> DLIB_END_BLAS_BINDING

        <font color='#009900'>// --------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font><font color='#BB00BB'>conj</font><font face='Lucida Console'>(</font>m<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font><font color='#5555FF'>*</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font><font color='#BB00BB'>conj</font><font face='Lucida Console'>(</font>m<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#009900'>//cout &lt;&lt; "BLAS GEMM: trans(conj(m))*trans(conj(m))" &lt;&lt; endl;
</font>            <font color='#0000FF'>const</font> <font color='#0000FF'><u>bool</u></font> is_row_major_order <font color='#5555FF'>=</font> is_same_type<font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> dest_exp::layout_type,row_major_layout<font color='#5555FF'>&gt;</font>::value;  
            <font color='#0000FF'>const</font> CBLAS_ORDER Order <font color='#5555FF'>=</font> is_row_major_order ? CblasRowMajor : CblasColMajor;
            <font color='#0000FF'>const</font> CBLAS_TRANSPOSE TransA <font color='#5555FF'>=</font> CblasConjTrans;
            <font color='#0000FF'>const</font> CBLAS_TRANSPOSE TransB <font color='#5555FF'>=</font> CblasConjTrans;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> K <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.lhs.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> A <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> B <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> ldb <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>const</font> T beta <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font>T<font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>add_to?<font color='#979000'>1</font>:<font color='#979000'>0</font><font face='Lucida Console'>)</font>;
            T<font color='#5555FF'>*</font> C <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> ldc <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>transpose <font color='#5555FF'>=</font><font color='#5555FF'>=</font> <font color='#979000'>false</font><font face='Lucida Console'>)</font>
                <font color='#BB00BB'>cblas_gemm</font><font face='Lucida Console'>(</font>Order, TransA, TransB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>else</font>
                <font color='#BB00BB'>matrix_assign_default</font><font face='Lucida Console'>(</font>dest, <font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>src<font face='Lucida Console'>)</font>, alpha, add_to<font face='Lucida Console'>)</font>;
        <b>}</b> DLIB_END_BLAS_BINDING

    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>    <font color='#009900'>//                       GEMV overloads
</font>    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font>m<font color='#5555FF'>*</font>cv<font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#009900'>//cout &lt;&lt; "BLAS GEMV: m*cv" &lt;&lt; endl;
</font>            <font color='#0000FF'>const</font> <font color='#0000FF'><u>bool</u></font> is_row_major_order <font color='#5555FF'>=</font> is_same_type<font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> dest_exp::layout_type,row_major_layout<font color='#5555FF'>&gt;</font>::value;  
            <font color='#0000FF'>const</font> CBLAS_ORDER Order <font color='#5555FF'>=</font> is_row_major_order ? CblasRowMajor : CblasColMajor;
            <font color='#0000FF'>const</font> CBLAS_TRANSPOSE TransA <font color='#5555FF'>=</font> CblasNoTrans;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.lhs.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.lhs.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> A <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.lhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>src.lhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> X <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.rhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.rhs<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>const</font> T beta <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font>T<font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>add_to?<font color='#979000'>1</font>:<font color='#979000'>0</font><font face='Lucida Console'>)</font>;
            T<font color='#5555FF'>*</font> Y <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;

            <font color='#BB00BB'>cblas_gemv</font><font face='Lucida Console'>(</font>Order, TransA, M, N, alpha, A, lda, X, incX, beta, Y, incY<font face='Lucida Console'>)</font>;
        <b>}</b> DLIB_END_BLAS_BINDING

        <font color='#009900'>// --------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font>rv<font color='#5555FF'>*</font>m<font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#009900'>// Note that rv*m is the same as trans(m)*trans(rv)
</font>
            <font color='#009900'>//cout &lt;&lt; "BLAS GEMV: rv*m" &lt;&lt; endl;
</font>            <font color='#0000FF'>const</font> <font color='#0000FF'><u>bool</u></font> is_row_major_order <font color='#5555FF'>=</font> is_same_type<font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> dest_exp::layout_type,row_major_layout<font color='#5555FF'>&gt;</font>::value;  
            <font color='#0000FF'>const</font> CBLAS_ORDER Order <font color='#5555FF'>=</font> is_row_major_order ? CblasRowMajor : CblasColMajor;
            <font color='#0000FF'>const</font> CBLAS_TRANSPOSE TransA <font color='#5555FF'>=</font> CblasTrans;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.rhs.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.rhs.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> A <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.rhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>src.rhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> X <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.lhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.lhs<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>const</font> T beta <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font>T<font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>add_to?<font color='#979000'>1</font>:<font color='#979000'>0</font><font face='Lucida Console'>)</font>;
            T<font color='#5555FF'>*</font> Y <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;

            <font color='#BB00BB'>cblas_gemv</font><font face='Lucida Console'>(</font>Order, TransA, M, N, alpha, A, lda, X, incX, beta, Y, incY<font face='Lucida Console'>)</font>;
        <b>}</b> DLIB_END_BLAS_BINDING

        <font color='#009900'>// --------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>cv<font face='Lucida Console'>)</font><font color='#5555FF'>*</font>m<font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#009900'>// Note that trans(cv)*m is the same as trans(m)*cv
</font>
            <font color='#009900'>//cout &lt;&lt; "BLAS GEMV: trans(cv)*m" &lt;&lt; endl;
</font>            <font color='#0000FF'>const</font> <font color='#0000FF'><u>bool</u></font> is_row_major_order <font color='#5555FF'>=</font> is_same_type<font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> dest_exp::layout_type,row_major_layout<font color='#5555FF'>&gt;</font>::value;  
            <font color='#0000FF'>const</font> CBLAS_ORDER Order <font color='#5555FF'>=</font> is_row_major_order ? CblasRowMajor : CblasColMajor;
            <font color='#0000FF'>const</font> CBLAS_TRANSPOSE TransA <font color='#5555FF'>=</font> CblasTrans;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.rhs.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.rhs.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> A <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.rhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>src.rhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> X <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>const</font> T beta <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font>T<font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>add_to?<font color='#979000'>1</font>:<font color='#979000'>0</font><font face='Lucida Console'>)</font>;
            T<font color='#5555FF'>*</font> Y <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;

            <font color='#BB00BB'>cblas_gemv</font><font face='Lucida Console'>(</font>Order, TransA, M, N, alpha, A, lda, X, incX, beta, Y, incY<font face='Lucida Console'>)</font>;
        <b>}</b> DLIB_END_BLAS_BINDING

        <font color='#009900'>// --------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font>m<font color='#5555FF'>*</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>rv<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#009900'>//cout &lt;&lt; "BLAS GEMV: m*trans(rv)" &lt;&lt; endl;
</font>            <font color='#0000FF'>const</font> <font color='#0000FF'><u>bool</u></font> is_row_major_order <font color='#5555FF'>=</font> is_same_type<font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> dest_exp::layout_type,row_major_layout<font color='#5555FF'>&gt;</font>::value;  
            <font color='#0000FF'>const</font> CBLAS_ORDER Order <font color='#5555FF'>=</font> is_row_major_order ? CblasRowMajor : CblasColMajor;
            <font color='#0000FF'>const</font> CBLAS_TRANSPOSE TransA <font color='#5555FF'>=</font> CblasNoTrans;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.lhs.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.lhs.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> A <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.lhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>src.lhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> X <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>const</font> T beta <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font>T<font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>add_to?<font color='#979000'>1</font>:<font color='#979000'>0</font><font face='Lucida Console'>)</font>;
            T<font color='#5555FF'>*</font> Y <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;

            <font color='#BB00BB'>cblas_gemv</font><font face='Lucida Console'>(</font>Order, TransA, M, N, alpha, A, lda, X, incX, beta, Y, incY<font face='Lucida Console'>)</font>;
        <b>}</b> DLIB_END_BLAS_BINDING

        <font color='#009900'>// --------------------------------------
</font>        <font color='#009900'>// --------------------------------------
</font>        <font color='#009900'>// --------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>m<font face='Lucida Console'>)</font><font color='#5555FF'>*</font>cv<font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#009900'>//cout &lt;&lt; "BLAS GEMV: trans(m)*cv" &lt;&lt; endl;
</font>            <font color='#0000FF'>const</font> <font color='#0000FF'><u>bool</u></font> is_row_major_order <font color='#5555FF'>=</font> is_same_type<font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> dest_exp::layout_type,row_major_layout<font color='#5555FF'>&gt;</font>::value;  
            <font color='#0000FF'>const</font> CBLAS_ORDER Order <font color='#5555FF'>=</font> is_row_major_order ? CblasRowMajor : CblasColMajor;
            <font color='#0000FF'>const</font> CBLAS_TRANSPOSE TransA <font color='#5555FF'>=</font> CblasTrans;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.lhs.op.m.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.lhs.op.m.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> A <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> X <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.rhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.rhs<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>const</font> T beta <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font>T<font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>add_to?<font color='#979000'>1</font>:<font color='#979000'>0</font><font face='Lucida Console'>)</font>;
            T<font color='#5555FF'>*</font> Y <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;

            <font color='#BB00BB'>cblas_gemv</font><font face='Lucida Console'>(</font>Order, TransA, M, N, alpha, A, lda, X, incX, beta, Y, incY<font face='Lucida Console'>)</font>;
        <b>}</b> DLIB_END_BLAS_BINDING

        <font color='#009900'>// --------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font>rv<font color='#5555FF'>*</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>m<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#009900'>// Note that rv*trans(m) is the same as m*trans(rv)
</font>
            <font color='#009900'>//cout &lt;&lt; "BLAS GEMV: rv*trans(m)" &lt;&lt; endl;
</font>            <font color='#0000FF'>const</font> <font color='#0000FF'><u>bool</u></font> is_row_major_order <font color='#5555FF'>=</font> is_same_type<font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> dest_exp::layout_type,row_major_layout<font color='#5555FF'>&gt;</font>::value;  
            <font color='#0000FF'>const</font> CBLAS_ORDER Order <font color='#5555FF'>=</font> is_row_major_order ? CblasRowMajor : CblasColMajor;
            <font color='#0000FF'>const</font> CBLAS_TRANSPOSE TransA <font color='#5555FF'>=</font> CblasNoTrans;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.rhs.op.m.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.rhs.op.m.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> A <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> X <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.lhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.lhs<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>const</font> T beta <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font>T<font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>add_to?<font color='#979000'>1</font>:<font color='#979000'>0</font><font face='Lucida Console'>)</font>;
            T<font color='#5555FF'>*</font> Y <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;

            <font color='#BB00BB'>cblas_gemv</font><font face='Lucida Console'>(</font>Order, TransA, M, N, alpha, A, lda, X, incX, beta, Y, incY<font face='Lucida Console'>)</font>;
        <b>}</b> DLIB_END_BLAS_BINDING

        <font color='#009900'>// --------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>cv<font face='Lucida Console'>)</font><font color='#5555FF'>*</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>m<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#009900'>// Note that trans(cv)*trans(m) is the same as m*cv
</font>
            <font color='#009900'>//cout &lt;&lt; "BLAS GEMV: trans(cv)*trans(m)" &lt;&lt; endl;
</font>            <font color='#0000FF'>const</font> <font color='#0000FF'><u>bool</u></font> is_row_major_order <font color='#5555FF'>=</font> is_same_type<font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> dest_exp::layout_type,row_major_layout<font color='#5555FF'>&gt;</font>::value;  
            <font color='#0000FF'>const</font> CBLAS_ORDER Order <font color='#5555FF'>=</font> is_row_major_order ? CblasRowMajor : CblasColMajor;
            <font color='#0000FF'>const</font> CBLAS_TRANSPOSE TransA <font color='#5555FF'>=</font> CblasNoTrans;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.rhs.op.m.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.rhs.op.m.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> A <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> X <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>const</font> T beta <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font>T<font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>add_to?<font color='#979000'>1</font>:<font color='#979000'>0</font><font face='Lucida Console'>)</font>;
            T<font color='#5555FF'>*</font> Y <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;

            <font color='#BB00BB'>cblas_gemv</font><font face='Lucida Console'>(</font>Order, TransA, M, N, alpha, A, lda, X, incX, beta, Y, incY<font face='Lucida Console'>)</font>;
        <b>}</b> DLIB_END_BLAS_BINDING

        <font color='#009900'>// --------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>m<font face='Lucida Console'>)</font><font color='#5555FF'>*</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>rv<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#009900'>//cout &lt;&lt; "BLAS GEMV: trans(m)*trans(rv)" &lt;&lt; endl;
</font>            <font color='#0000FF'>const</font> <font color='#0000FF'><u>bool</u></font> is_row_major_order <font color='#5555FF'>=</font> is_same_type<font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> dest_exp::layout_type,row_major_layout<font color='#5555FF'>&gt;</font>::value;  
            <font color='#0000FF'>const</font> CBLAS_ORDER Order <font color='#5555FF'>=</font> is_row_major_order ? CblasRowMajor : CblasColMajor;
            <font color='#0000FF'>const</font> CBLAS_TRANSPOSE TransA <font color='#5555FF'>=</font> CblasTrans;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.lhs.op.m.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.lhs.op.m.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> A <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> X <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>const</font> T beta <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font>T<font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>add_to?<font color='#979000'>1</font>:<font color='#979000'>0</font><font face='Lucida Console'>)</font>;
            T<font color='#5555FF'>*</font> Y <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;

            <font color='#BB00BB'>cblas_gemv</font><font face='Lucida Console'>(</font>Order, TransA, M, N, alpha, A, lda, X, incX, beta, Y, incY<font face='Lucida Console'>)</font>;
        <b>}</b> DLIB_END_BLAS_BINDING

        <font color='#009900'>// --------------------------------------
</font>        <font color='#009900'>// --------------------------------------
</font>        <font color='#009900'>// --------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>cv<font face='Lucida Console'>)</font><font color='#5555FF'>*</font><font color='#BB00BB'>conj</font><font face='Lucida Console'>(</font>m<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#009900'>// Note that trans(cv)*conj(m) == conj(trans(m))*cv
</font>            <font color='#009900'>//cout &lt;&lt; "BLAS GEMV: trans(cv)*conj(m)" &lt;&lt; endl;
</font>            <font color='#0000FF'>const</font> <font color='#0000FF'><u>bool</u></font> is_row_major_order <font color='#5555FF'>=</font> is_same_type<font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> dest_exp::layout_type,row_major_layout<font color='#5555FF'>&gt;</font>::value;  
            <font color='#0000FF'>const</font> CBLAS_ORDER Order <font color='#5555FF'>=</font> is_row_major_order ? CblasRowMajor : CblasColMajor;
            <font color='#0000FF'>const</font> CBLAS_TRANSPOSE TransA <font color='#5555FF'>=</font> CblasConjTrans;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.rhs.op.m.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.rhs.op.m.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> A <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> X <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>const</font> T beta <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font>T<font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>add_to?<font color='#979000'>1</font>:<font color='#979000'>0</font><font face='Lucida Console'>)</font>;
            T<font color='#5555FF'>*</font> Y <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;

            <font color='#BB00BB'>cblas_gemv</font><font face='Lucida Console'>(</font>Order, TransA, M, N, alpha, A, lda, X, incX, beta, Y, incY<font face='Lucida Console'>)</font>;
        <b>}</b> DLIB_END_BLAS_BINDING

        <font color='#009900'>// --------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font>rv<font color='#5555FF'>*</font><font color='#BB00BB'>conj</font><font face='Lucida Console'>(</font>m<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#009900'>// Note that rv*conj(m) == conj(trans(m))*cv
</font>            <font color='#009900'>//cout &lt;&lt; "BLAS GEMV: rv*conj(m)" &lt;&lt; endl;
</font>            <font color='#0000FF'>const</font> <font color='#0000FF'><u>bool</u></font> is_row_major_order <font color='#5555FF'>=</font> is_same_type<font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> dest_exp::layout_type,row_major_layout<font color='#5555FF'>&gt;</font>::value;  
            <font color='#0000FF'>const</font> CBLAS_ORDER Order <font color='#5555FF'>=</font> is_row_major_order ? CblasRowMajor : CblasColMajor;
            <font color='#0000FF'>const</font> CBLAS_TRANSPOSE TransA <font color='#5555FF'>=</font> CblasConjTrans;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.rhs.op.m.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.rhs.op.m.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> A <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> X <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.lhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.lhs<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>const</font> T beta <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font>T<font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>add_to?<font color='#979000'>1</font>:<font color='#979000'>0</font><font face='Lucida Console'>)</font>;
            T<font color='#5555FF'>*</font> Y <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;

            <font color='#BB00BB'>cblas_gemv</font><font face='Lucida Console'>(</font>Order, TransA, M, N, alpha, A, lda, X, incX, beta, Y, incY<font face='Lucida Console'>)</font>;
        <b>}</b> DLIB_END_BLAS_BINDING

        <font color='#009900'>// --------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font><font color='#BB00BB'>conj</font><font face='Lucida Console'>(</font>m<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font><font color='#5555FF'>*</font>cv<font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#009900'>//cout &lt;&lt; "BLAS GEMV: trans(conj(m))*cv" &lt;&lt; endl;
</font>            <font color='#0000FF'>const</font> <font color='#0000FF'><u>bool</u></font> is_row_major_order <font color='#5555FF'>=</font> is_same_type<font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> dest_exp::layout_type,row_major_layout<font color='#5555FF'>&gt;</font>::value;  
            <font color='#0000FF'>const</font> CBLAS_ORDER Order <font color='#5555FF'>=</font> is_row_major_order ? CblasRowMajor : CblasColMajor;
            <font color='#0000FF'>const</font> CBLAS_TRANSPOSE TransA <font color='#5555FF'>=</font> CblasConjTrans;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.lhs.op.m.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.lhs.op.m.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> A <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> X <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.rhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.rhs<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>const</font> T beta <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font>T<font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>add_to?<font color='#979000'>1</font>:<font color='#979000'>0</font><font face='Lucida Console'>)</font>;
            T<font color='#5555FF'>*</font> Y <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;

            <font color='#BB00BB'>cblas_gemv</font><font face='Lucida Console'>(</font>Order, TransA, M, N, alpha, A, lda, X, incX, beta, Y, incY<font face='Lucida Console'>)</font>;
        <b>}</b> DLIB_END_BLAS_BINDING

        <font color='#009900'>// --------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font><font color='#BB00BB'>conj</font><font face='Lucida Console'>(</font>m<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font><font color='#5555FF'>*</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>rv<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#009900'>//cout &lt;&lt; "BLAS GEMV: trans(conj(m))*trans(rv)" &lt;&lt; endl;
</font>            <font color='#0000FF'>const</font> <font color='#0000FF'><u>bool</u></font> is_row_major_order <font color='#5555FF'>=</font> is_same_type<font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> dest_exp::layout_type,row_major_layout<font color='#5555FF'>&gt;</font>::value;  
            <font color='#0000FF'>const</font> CBLAS_ORDER Order <font color='#5555FF'>=</font> is_row_major_order ? CblasRowMajor : CblasColMajor;
            <font color='#0000FF'>const</font> CBLAS_TRANSPOSE TransA <font color='#5555FF'>=</font> CblasConjTrans;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.lhs.op.m.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.lhs.op.m.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> A <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> X <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>const</font> T beta <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font>T<font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>add_to?<font color='#979000'>1</font>:<font color='#979000'>0</font><font face='Lucida Console'>)</font>;
            T<font color='#5555FF'>*</font> Y <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;

            <font color='#BB00BB'>cblas_gemv</font><font face='Lucida Console'>(</font>Order, TransA, M, N, alpha, A, lda, X, incX, beta, Y, incY<font face='Lucida Console'>)</font>;
        <b>}</b> DLIB_END_BLAS_BINDING

    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>    <font color='#009900'>//                       GER overloads
</font>    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font>cv<font color='#5555FF'>*</font>rv<font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#009900'>//cout &lt;&lt; "BLAS GER: cv*rv" &lt;&lt; endl;
</font>            <font color='#0000FF'>const</font> <font color='#0000FF'><u>bool</u></font> is_row_major_order <font color='#5555FF'>=</font> is_same_type<font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> dest_exp::layout_type,row_major_layout<font color='#5555FF'>&gt;</font>::value;  
            <font color='#0000FF'>const</font> CBLAS_ORDER Order <font color='#5555FF'>=</font> is_row_major_order ? CblasRowMajor : CblasColMajor;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>dest.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>dest.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> X <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.lhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.lhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> Y <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.rhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.rhs<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>add_to <font color='#5555FF'>=</font><font color='#5555FF'>=</font> <font color='#979000'>false</font><font face='Lucida Console'>)</font>
                <font color='#BB00BB'>zero_matrix</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;

            T<font color='#5555FF'>*</font> A <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>transpose <font color='#5555FF'>=</font><font color='#5555FF'>=</font> <font color='#979000'>false</font><font face='Lucida Console'>)</font>
                <font color='#BB00BB'>cblas_ger</font><font face='Lucida Console'>(</font>Order, M, N, alpha, X, incX, Y, incY, A, lda<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>else</font>
                <font color='#BB00BB'>cblas_ger</font><font face='Lucida Console'>(</font>Order, M, N, alpha, Y, incY, X, incX, A, lda<font face='Lucida Console'>)</font>;

        <b>}</b> DLIB_END_BLAS_BINDING

        <font color='#009900'>// --------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>rv<font face='Lucida Console'>)</font><font color='#5555FF'>*</font>rv<font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#009900'>//cout &lt;&lt; "BLAS GER: trans(rv)*rv" &lt;&lt; endl;
</font>            <font color='#0000FF'>const</font> <font color='#0000FF'><u>bool</u></font> is_row_major_order <font color='#5555FF'>=</font> is_same_type<font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> dest_exp::layout_type,row_major_layout<font color='#5555FF'>&gt;</font>::value;  
            <font color='#0000FF'>const</font> CBLAS_ORDER Order <font color='#5555FF'>=</font> is_row_major_order ? CblasRowMajor : CblasColMajor;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>dest.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>dest.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> X <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> Y <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.rhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.rhs<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>add_to <font color='#5555FF'>=</font><font color='#5555FF'>=</font> <font color='#979000'>false</font><font face='Lucida Console'>)</font>
                <font color='#BB00BB'>zero_matrix</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;

            T<font color='#5555FF'>*</font> A <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>transpose <font color='#5555FF'>=</font><font color='#5555FF'>=</font> <font color='#979000'>false</font><font face='Lucida Console'>)</font>
                <font color='#BB00BB'>cblas_ger</font><font face='Lucida Console'>(</font>Order, M, N, alpha, X, incX, Y, incY, A, lda<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>else</font>
                <font color='#BB00BB'>cblas_ger</font><font face='Lucida Console'>(</font>Order, M, N, alpha, Y, incY, X, incX, A, lda<font face='Lucida Console'>)</font>;
        <b>}</b> DLIB_END_BLAS_BINDING

        <font color='#009900'>// --------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font>cv<font color='#5555FF'>*</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>cv<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#009900'>//cout &lt;&lt; "BLAS GER: cv*trans(cv)" &lt;&lt; endl;
</font>            <font color='#0000FF'>const</font> <font color='#0000FF'><u>bool</u></font> is_row_major_order <font color='#5555FF'>=</font> is_same_type<font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> dest_exp::layout_type,row_major_layout<font color='#5555FF'>&gt;</font>::value;  
            <font color='#0000FF'>const</font> CBLAS_ORDER Order <font color='#5555FF'>=</font> is_row_major_order ? CblasRowMajor : CblasColMajor;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>dest.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>dest.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> X <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.lhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.lhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> Y <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>add_to <font color='#5555FF'>=</font><font color='#5555FF'>=</font> <font color='#979000'>false</font><font face='Lucida Console'>)</font>
                <font color='#BB00BB'>zero_matrix</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;

            T<font color='#5555FF'>*</font> A <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>transpose <font color='#5555FF'>=</font><font color='#5555FF'>=</font> <font color='#979000'>false</font><font face='Lucida Console'>)</font>
                <font color='#BB00BB'>cblas_ger</font><font face='Lucida Console'>(</font>Order, M, N, alpha, X, incX, Y, incY, A, lda<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>else</font>
                <font color='#BB00BB'>cblas_ger</font><font face='Lucida Console'>(</font>Order, M, N, alpha, Y, incY, X, incX, A, lda<font face='Lucida Console'>)</font>;
        <b>}</b> DLIB_END_BLAS_BINDING

        <font color='#009900'>// --------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>rv<font face='Lucida Console'>)</font><font color='#5555FF'>*</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>cv<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#009900'>//cout &lt;&lt; "BLAS GER: trans(rv)*trans(cv)" &lt;&lt; endl;
</font>            <font color='#0000FF'>const</font> <font color='#0000FF'><u>bool</u></font> is_row_major_order <font color='#5555FF'>=</font> is_same_type<font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> dest_exp::layout_type,row_major_layout<font color='#5555FF'>&gt;</font>::value;  
            <font color='#0000FF'>const</font> CBLAS_ORDER Order <font color='#5555FF'>=</font> is_row_major_order ? CblasRowMajor : CblasColMajor;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>dest.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>dest.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> X <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> Y <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>add_to <font color='#5555FF'>=</font><font color='#5555FF'>=</font> <font color='#979000'>false</font><font face='Lucida Console'>)</font>
                <font color='#BB00BB'>zero_matrix</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;

            T<font color='#5555FF'>*</font> A <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>transpose <font color='#5555FF'>=</font><font color='#5555FF'>=</font> <font color='#979000'>false</font><font face='Lucida Console'>)</font>
                <font color='#BB00BB'>cblas_ger</font><font face='Lucida Console'>(</font>Order, M, N, alpha, X, incX, Y, incY, A, lda<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>else</font>
                <font color='#BB00BB'>cblas_ger</font><font face='Lucida Console'>(</font>Order, M, N, alpha, Y, incY, X, incX, A, lda<font face='Lucida Console'>)</font>;
        <b>}</b> DLIB_END_BLAS_BINDING

    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>    <font color='#009900'>//                       GERC overloads
</font>    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>
        <font color='#009900'>/*
        DLIB_ADD_BLAS_BINDING(cv*conj(rv))
        {
            //cout &lt;&lt; "BLAS GERC: cv*conj(rv)" &lt;&lt; endl;
            const bool is_row_major_order = is_same_type&lt;typename dest_exp::layout_type,row_major_layout&gt;::value;  
            const CBLAS_ORDER Order = is_row_major_order ? CblasRowMajor : CblasColMajor;
            const int M = static_cast&lt;int&gt;(dest.nr());
            const int N = static_cast&lt;int&gt;(dest.nc());
            const T* X = get_ptr(src.lhs);
            const int incX = get_inc(src.lhs);
            const T* Y = get_ptr(src.rhs.op.m);
            const int incY = get_inc(src.rhs.op.m);

            if (add_to == false)
                zero_matrix(dest);

            T* A = get_ptr(dest);
            const int lda = get_ld(dest);

            if (transpose == false)
                cblas_gerc(Order, M, N, alpha, X, incX, Y, incY, A, lda);
            else
                cblas_gerc(Order, M, N, alpha, Y, incY, X, incX, A, lda);
        } DLIB_END_BLAS_BINDING
        */</font>

        <font color='#009900'>// --------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font>cv<font color='#5555FF'>*</font><font color='#BB00BB'>conj</font><font face='Lucida Console'>(</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>cv<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#009900'>//cout &lt;&lt; "BLAS GERC: cv*conj(trans(cv))" &lt;&lt; endl;
</font>            <font color='#0000FF'>const</font> <font color='#0000FF'><u>bool</u></font> is_row_major_order <font color='#5555FF'>=</font> is_same_type<font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> dest_exp::layout_type,row_major_layout<font color='#5555FF'>&gt;</font>::value;  
            <font color='#0000FF'>const</font> CBLAS_ORDER Order <font color='#5555FF'>=</font> is_row_major_order ? CblasRowMajor : CblasColMajor;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>dest.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>dest.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> X <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.lhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.lhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> Y <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;


            <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>transpose <font color='#5555FF'>=</font><font color='#5555FF'>=</font> <font color='#979000'>false</font><font face='Lucida Console'>)</font>
            <b>{</b>
                T<font color='#5555FF'>*</font> A <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;
                <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;

                <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>add_to <font color='#5555FF'>=</font><font color='#5555FF'>=</font> <font color='#979000'>false</font><font face='Lucida Console'>)</font>
                    <font color='#BB00BB'>zero_matrix</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;

                <font color='#BB00BB'>cblas_gerc</font><font face='Lucida Console'>(</font>Order, M, N, alpha, X, incX, Y, incY, A, lda<font face='Lucida Console'>)</font>;
            <b>}</b>
            <font color='#0000FF'>else</font>
            <b>{</b>
                <font color='#BB00BB'>matrix_assign_default</font><font face='Lucida Console'>(</font>dest,<font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>src<font face='Lucida Console'>)</font>,alpha,add_to<font face='Lucida Console'>)</font>;
                <font color='#009900'>//cblas_gerc(Order, M, N, alpha, Y, incY, X, incX, A, lda);
</font>            <b>}</b>
        <b>}</b> DLIB_END_BLAS_BINDING

        <font color='#009900'>// --------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>rv<font face='Lucida Console'>)</font><font color='#5555FF'>*</font><font color='#BB00BB'>conj</font><font face='Lucida Console'>(</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>cv<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#009900'>//cout &lt;&lt; "BLAS GERC: trans(rv)*conj(trans(cv))" &lt;&lt; endl;
</font>            <font color='#0000FF'>const</font> <font color='#0000FF'><u>bool</u></font> is_row_major_order <font color='#5555FF'>=</font> is_same_type<font color='#5555FF'>&lt;</font><font color='#0000FF'>typename</font> dest_exp::layout_type,row_major_layout<font color='#5555FF'>&gt;</font>::value;  
            <font color='#0000FF'>const</font> CBLAS_ORDER Order <font color='#5555FF'>=</font> is_row_major_order ? CblasRowMajor : CblasColMajor;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> M <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>dest.<font color='#BB00BB'>nr</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>dest.<font color='#BB00BB'>nc</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> X <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> Y <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;


            <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>transpose <font color='#5555FF'>=</font><font color='#5555FF'>=</font> <font color='#979000'>false</font><font face='Lucida Console'>)</font>
            <b>{</b>
                <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>add_to <font color='#5555FF'>=</font><font color='#5555FF'>=</font> <font color='#979000'>false</font><font face='Lucida Console'>)</font>
                    <font color='#BB00BB'>zero_matrix</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;

                T<font color='#5555FF'>*</font> A <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;
                <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> lda <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ld</font><font face='Lucida Console'>(</font>dest<font face='Lucida Console'>)</font>;

                <font color='#BB00BB'>cblas_gerc</font><font face='Lucida Console'>(</font>Order, M, N, alpha, X, incX, Y, incY, A, lda<font face='Lucida Console'>)</font>;
            <b>}</b>
            <font color='#0000FF'>else</font>
            <b>{</b>
                <font color='#BB00BB'>matrix_assign_default</font><font face='Lucida Console'>(</font>dest,<font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>src<font face='Lucida Console'>)</font>,alpha,add_to<font face='Lucida Console'>)</font>;
                <font color='#009900'>//cblas_gerc(Order, M, N, alpha, Y, incY, X, incX, A, lda);
</font>            <b>}</b>
        <b>}</b> DLIB_END_BLAS_BINDING

        <font color='#009900'>// --------------------------------------
</font>
        <font color='#009900'>/*
        DLIB_ADD_BLAS_BINDING(trans(rv)*conj(rv))
        {
            //cout &lt;&lt; "BLAS GERC: trans(rv)*conj(rv)" &lt;&lt; endl;
            const bool is_row_major_order = is_same_type&lt;typename dest_exp::layout_type,row_major_layout&gt;::value;  
            const CBLAS_ORDER Order = is_row_major_order ? CblasRowMajor : CblasColMajor;
            const int M = static_cast&lt;int&gt;(dest.nr());
            const int N = static_cast&lt;int&gt;(dest.nc());
            const T* X = get_ptr(src.lhs.op.m);
            const int incX = get_inc(src.lhs.op.m);
            const T* Y = get_ptr(src.rhs.op.m);
            const int incY = get_inc(src.rhs.op.m);

            if (add_to == false)
                zero_matrix(dest);

            T* A = get_ptr(dest);
            const int lda = get_ld(dest);

            if (transpose == false)
                cblas_gerc(Order, M, N, alpha, X, incX, Y, incY, A, lda);
            else
                cblas_gerc(Order, M, N, alpha, Y, incY, X, incX, A, lda);
        } DLIB_END_BLAS_BINDING
        */</font>

    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>    <font color='#009900'>//                       DOT overloads
</font>    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font>rv<font color='#5555FF'>*</font>cv<font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#009900'>//cout &lt;&lt; "BLAS DOT: rv*cv" &lt;&lt; endl;
</font>            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.lhs.<font color='#BB00BB'>size</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> X <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.lhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.lhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> Y <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.rhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.rhs<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>add_to <font color='#5555FF'>=</font><font color='#5555FF'>=</font> <font color='#979000'>false</font><font face='Lucida Console'>)</font>
                <font color='#BB00BB'>dest</font><font face='Lucida Console'>(</font><font color='#979000'>0</font><font face='Lucida Console'>)</font> <font color='#5555FF'>=</font> alpha<font color='#5555FF'>*</font><font color='#BB00BB'>cblas_dot</font><font face='Lucida Console'>(</font>N, X, incX, Y, incY<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>else</font>
                <font color='#BB00BB'>dest</font><font face='Lucida Console'>(</font><font color='#979000'>0</font><font face='Lucida Console'>)</font> <font color='#5555FF'>+</font><font color='#5555FF'>=</font> alpha<font color='#5555FF'>*</font><font color='#BB00BB'>cblas_dot</font><font face='Lucida Console'>(</font>N, X, incX, Y, incY<font face='Lucida Console'>)</font>;

        <b>}</b> DLIB_END_BLAS_BINDING

        <font color='#009900'>// --------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>cv<font face='Lucida Console'>)</font><font color='#5555FF'>*</font>cv<font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#009900'>//cout &lt;&lt; "BLAS DOT: trans(cv)*cv" &lt;&lt; endl;
</font>            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.lhs.<font color='#BB00BB'>size</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> X <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> Y <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.rhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.rhs<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>add_to <font color='#5555FF'>=</font><font color='#5555FF'>=</font> <font color='#979000'>false</font><font face='Lucida Console'>)</font>
                <font color='#BB00BB'>dest</font><font face='Lucida Console'>(</font><font color='#979000'>0</font><font face='Lucida Console'>)</font> <font color='#5555FF'>=</font> alpha<font color='#5555FF'>*</font><font color='#BB00BB'>cblas_dot</font><font face='Lucida Console'>(</font>N, X, incX, Y, incY<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>else</font>
                <font color='#BB00BB'>dest</font><font face='Lucida Console'>(</font><font color='#979000'>0</font><font face='Lucida Console'>)</font> <font color='#5555FF'>+</font><font color='#5555FF'>=</font> alpha<font color='#5555FF'>*</font><font color='#BB00BB'>cblas_dot</font><font face='Lucida Console'>(</font>N, X, incX, Y, incY<font face='Lucida Console'>)</font>;

        <b>}</b> DLIB_END_BLAS_BINDING

        <font color='#009900'>// --------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font>rv<font color='#5555FF'>*</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>rv<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#009900'>//cout &lt;&lt; "BLAS DOT: rv*trans(rv)" &lt;&lt; endl;
</font>            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.lhs.<font color='#BB00BB'>size</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> X <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.lhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.lhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> Y <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>add_to <font color='#5555FF'>=</font><font color='#5555FF'>=</font> <font color='#979000'>false</font><font face='Lucida Console'>)</font>
                <font color='#BB00BB'>dest</font><font face='Lucida Console'>(</font><font color='#979000'>0</font><font face='Lucida Console'>)</font> <font color='#5555FF'>=</font> alpha<font color='#5555FF'>*</font><font color='#BB00BB'>cblas_dot</font><font face='Lucida Console'>(</font>N, X, incX, Y, incY<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>else</font>
                <font color='#BB00BB'>dest</font><font face='Lucida Console'>(</font><font color='#979000'>0</font><font face='Lucida Console'>)</font> <font color='#5555FF'>+</font><font color='#5555FF'>=</font> alpha<font color='#5555FF'>*</font><font color='#BB00BB'>cblas_dot</font><font face='Lucida Console'>(</font>N, X, incX, Y, incY<font face='Lucida Console'>)</font>;

        <b>}</b> DLIB_END_BLAS_BINDING

        <font color='#009900'>// --------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>cv<font face='Lucida Console'>)</font><font color='#5555FF'>*</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>rv<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#009900'>//cout &lt;&lt; "BLAS DOT: trans(cv)*trans(rv)" &lt;&lt; endl;
</font>            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.lhs.op.m.<font color='#BB00BB'>size</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> X <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> Y <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>add_to <font color='#5555FF'>=</font><font color='#5555FF'>=</font> <font color='#979000'>false</font><font face='Lucida Console'>)</font>
                <font color='#BB00BB'>dest</font><font face='Lucida Console'>(</font><font color='#979000'>0</font><font face='Lucida Console'>)</font> <font color='#5555FF'>=</font> alpha<font color='#5555FF'>*</font><font color='#BB00BB'>cblas_dot</font><font face='Lucida Console'>(</font>N, X, incX, Y, incY<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>else</font>
                <font color='#BB00BB'>dest</font><font face='Lucida Console'>(</font><font color='#979000'>0</font><font face='Lucida Console'>)</font> <font color='#5555FF'>+</font><font color='#5555FF'>=</font> alpha<font color='#5555FF'>*</font><font color='#BB00BB'>cblas_dot</font><font face='Lucida Console'>(</font>N, X, incX, Y, incY<font face='Lucida Console'>)</font>;

        <b>}</b> DLIB_END_BLAS_BINDING

    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>    <font color='#009900'>//                       DOTC overloads
</font>    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>    <font color='#009900'>// ----------------------------------------------------------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font><font color='#BB00BB'>conj</font><font face='Lucida Console'>(</font>rv<font face='Lucida Console'>)</font><font color='#5555FF'>*</font>cv<font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#009900'>//cout &lt;&lt; "BLAS DOTC: conj(rv)*cv" &lt;&lt; endl;
</font>            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.lhs.op.m.<font color='#BB00BB'>size</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> X <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> Y <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.rhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.rhs<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>add_to <font color='#5555FF'>=</font><font color='#5555FF'>=</font> <font color='#979000'>false</font><font face='Lucida Console'>)</font>
                <font color='#BB00BB'>dest</font><font face='Lucida Console'>(</font><font color='#979000'>0</font><font face='Lucida Console'>)</font> <font color='#5555FF'>=</font> alpha<font color='#5555FF'>*</font><font color='#BB00BB'>cblas_dotc</font><font face='Lucida Console'>(</font>N, X, incX, Y, incY<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>else</font>
                <font color='#BB00BB'>dest</font><font face='Lucida Console'>(</font><font color='#979000'>0</font><font face='Lucida Console'>)</font> <font color='#5555FF'>+</font><font color='#5555FF'>=</font> alpha<font color='#5555FF'>*</font><font color='#BB00BB'>cblas_dotc</font><font face='Lucida Console'>(</font>N, X, incX, Y, incY<font face='Lucida Console'>)</font>;

        <b>}</b> DLIB_END_BLAS_BINDING

        <font color='#009900'>// --------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font><font color='#BB00BB'>conj</font><font face='Lucida Console'>(</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>cv<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font><font color='#5555FF'>*</font>cv<font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#009900'>//cout &lt;&lt; "BLAS DOTC: conj(trans(cv))*cv" &lt;&lt; endl;
</font>            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.lhs.op.m.<font color='#BB00BB'>size</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> X <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> Y <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.rhs<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.rhs<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>add_to <font color='#5555FF'>=</font><font color='#5555FF'>=</font> <font color='#979000'>false</font><font face='Lucida Console'>)</font>
                <font color='#BB00BB'>dest</font><font face='Lucida Console'>(</font><font color='#979000'>0</font><font face='Lucida Console'>)</font> <font color='#5555FF'>=</font> alpha<font color='#5555FF'>*</font><font color='#BB00BB'>cblas_dotc</font><font face='Lucida Console'>(</font>N, X, incX, Y, incY<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>else</font>
                <font color='#BB00BB'>dest</font><font face='Lucida Console'>(</font><font color='#979000'>0</font><font face='Lucida Console'>)</font> <font color='#5555FF'>+</font><font color='#5555FF'>=</font> alpha<font color='#5555FF'>*</font><font color='#BB00BB'>cblas_dotc</font><font face='Lucida Console'>(</font>N, X, incX, Y, incY<font face='Lucida Console'>)</font>;

        <b>}</b> DLIB_END_BLAS_BINDING

        <font color='#009900'>// --------------------------------------
</font>
        <b><a name='DLIB_ADD_BLAS_BINDING'></a>DLIB_ADD_BLAS_BINDING</b><font face='Lucida Console'>(</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font><font color='#BB00BB'>conj</font><font face='Lucida Console'>(</font>cv<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font><font color='#5555FF'>*</font><font color='#BB00BB'>trans</font><font face='Lucida Console'>(</font>rv<font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>
        <b>{</b>
            <font color='#009900'>//cout &lt;&lt; "BLAS DOTC: trans(conj(cv))*trans(rv)" &lt;&lt; endl;
</font>            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> N <font color='#5555FF'>=</font> <font color='#0000FF'>static_cast</font><font color='#5555FF'>&lt;</font><font color='#0000FF'><u>int</u></font><font color='#5555FF'>&gt;</font><font face='Lucida Console'>(</font>src.lhs.op.m.<font color='#BB00BB'>size</font><font face='Lucida Console'>(</font><font face='Lucida Console'>)</font><font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> X <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incX <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.lhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> T<font color='#5555FF'>*</font> Y <font color='#5555FF'>=</font> <font color='#BB00BB'>get_ptr</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>const</font> <font color='#0000FF'><u>int</u></font> incY <font color='#5555FF'>=</font> <font color='#BB00BB'>get_inc</font><font face='Lucida Console'>(</font>src.rhs.op.m<font face='Lucida Console'>)</font>;

            <font color='#0000FF'>if</font> <font face='Lucida Console'>(</font>add_to <font color='#5555FF'>=</font><font color='#5555FF'>=</font> <font color='#979000'>false</font><font face='Lucida Console'>)</font>
                <font color='#BB00BB'>dest</font><font face='Lucida Console'>(</font><font color='#979000'>0</font><font face='Lucida Console'>)</font> <font color='#5555FF'>=</font> alpha<font color='#5555FF'>*</font><font color='#BB00BB'>cblas_dotc</font><font face='Lucida Console'>(</font>N, X, incX, Y, incY<font face='Lucida Console'>)</font>;
            <font color='#0000FF'>else</font>
                <font color='#BB00BB'>dest</font><font face='Lucida Console'>(</font><font color='#979000'>0</font><font face='Lucida Console'>)</font> <font color='#5555FF'>+</font><font color='#5555FF'>=</font> alpha<font color='#5555FF'>*</font><font color='#BB00BB'>cblas_dotc</font><font face='Lucida Console'>(</font>N, X, incX, Y, incY<font face='Lucida Console'>)</font>;

        <b>}</b> DLIB_END_BLAS_BINDING

    <b>}</b>

<font color='#009900'>// ----------------------------------------------------------------------------------------
</font>
<b>}</b>

<font color='#0000FF'>#endif</font> <font color='#009900'>// DLIB_MATRIx_BLAS_BINDINGS_
</font>

</pre></body></html>